Question

en utilisant MongoDB avec mangouste:

Mon code actuel renvoie les documents corrects mais les envoie au client dans le mauvais ordre. J'ai essayé d'ajouter une autre commande de tri après la .limit () pour inverser cela, mais il n'a pas bien fonctionné. Toutes les idées pour que cela se produise au sein de l'appel db au lieu de code supplémentaire pour inverser l'ordre?

Item.find().sort('_id','descending').limit(40).each(function(err, doc) {
    if(doc != null){
        client.send(JSON.stringify(doc));       
    }
});
Était-ce utile?

La solution

que diriez-vous?

var orderedList = new Array();
Item.find().sort('_id','descending').limit(40).each(function(err, doc) {
    orderedList.push(doc);
});

for (var i=orderedList.length; i>=0; i--){
   orderedList[i].doYourThang..
}

Essayez: JQuery .each () vers l'arrière pour le plugin inverse ()

Autres conseils

En fonction du contexte réel de votre requête mongodb essayez ceci (Client.js météore):

Item.find({}, { sort: { _id: -1 } })

ou en coquille db qui code:

Item.find({}).sort({'_id': -1});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top