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 ?
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 ?
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/
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 :)
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 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.