web-dev-qa-db-fra.com

Comment puis-je trier une collection Meteor par heure d'insertion?

Je travaille sur mon premier projet en utilisant Meteor et j'ai quelques difficultés avec le tri.

J'ai un formulaire où les utilisateurs entrent des aphorismes qui sont ensuite affichés dans une liste. Actuellement, les aphorismes les plus récents s'affichent automatiquement en bas de la liste. Existe-t-il un moyen simple de faire figurer le plus récent en haut de la liste?

J'ai essayé:

   Template.list.aphorisms = function () {
    return Aphorisms.find({}, {sort: {$natural:1}});
};

Et je suis perplexe parce que les documents Meteor n’ont pas beaucoup d’exemples.

58
squeezemylime

En supposant que le date_created Soit dans un format de date valide avec l'horodatage, vous devez insérer la valeur analysée de date_created À l'aide de la fonction Date.parse() javascript, qui donne le nombre de millisecondes. entre le 1er janvier 1970 et la valeur de date contenue dans date_created.

De ce fait, le dernier enregistrement ajouté contiendra une valeur de date_created Supérieure à celle de l'enregistrement inséré avant celui-ci.

Maintenant, lors de la récupération des enregistrements, triez le curseur dans l'ordre décroissant du paramètre date_created Comme suit:

 Aphorisms.find({}, {sort: {date_created: -1}});

Cela va trier les enregistrements du plus récent au plus ancien.

J'espère que cela t'aides.

107
sohel khalifa

J'ai trouvé ce qui suit comme solution plus propre:

   Template.list.aphorisms = function () {
      return Aphorisms.find().fetch().reverse();
   };

Étant donné que la totalité de la collection existe déjà dans l'ordre inverse de votre choix, vous pouvez simplement créer un tableau de tous les objets et inverser l'ordre.

9
Samuel Ellis