167 votes

Comment trier une collection par date dans MongoDB ?

J'utilise MongoDB avec Node.JS. J'ai une collection qui contient une date et d'autres lignes. La date est un fichier JavaScript Date objet.

Comment puis-je trier cette collection par date ?

7voto

Mendon Ashwini Points 155
collection.find().sort('date':1).exec(function(err, doc) {});

cela a fonctionné pour moi

référencé https://docs.mongodb.org/getting-started/node/query/

6voto

Emilc Points 343

Avec la mangouste, c'est aussi simple que cela :

collection.find().sort('-date').exec(function(err, collectionItems) {
  // here's your code
})

4voto

Carré supplémentaire [ ] Un support est nécessaire pour que le paramètre de triage fonctionne.

collection.find({}, {"sort" : [['datefield', 'asc']]} ).toArray(function(err,docs) {});

3voto

Amine_Dev Points 447

Si votre format de date est comme ceci : 14/02/1989 ----> vous pouvez rencontrer des problèmes.

vous devez utiliser ISOdate comme ceci :

var start_date = new Date(2012, 07, x, x, x); 

-----> le résultat ------>ISODate("2012-07-14T08:14:00.201Z")

Maintenant, il suffit d'utiliser la requête comme ceci :

 collection.find( { query : query ,$orderby :{start_date : -1}} ,function (err, cursor) {...}

c'est tout :)

2voto

Pransh Tiwari Points 699

Avec Mongoose, je n'ai pas pu utiliser 'toArray' et j'ai obtenu l'erreur suivante : TypeError: Collection.find(...).sort(...).toArray is not a function. La fonction toArray existe sur la classe Cursor du pilote Native MongoDB NodeJS ( référence ).

De plus, le tri n'accepte qu'un seul paramètre, vous ne pouvez donc pas passer votre fonction à l'intérieur.

Cela a fonctionné pour moi (comme répondu par Emil ):

collection.find().sort('-date').exec(function(error, result) {
  // Your code
})

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X