MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

tri personnalisé mongoose/mongodb

Vous voudrez peut-être utiliser db.eval si vous êtes déterminé à le faire côté base de données.

Réponse extraite d'une autre question :

Je ne pense pas que ce soit possible directement; la documentation de tri ne mentionne certainement aucun moyen de fournir une fonction de comparaison personnalisée.

Vous feriez probablement mieux de faire le tri dans le client, mais si vous êtes vraiment déterminé à le faire sur le serveur, vous pourrez peut-être utiliser db.eval() pour organiser l'exécution du tri sur le serveur (si votre client le prend en charge).

Tri côté serveur :

db.eval(function() { 
  return db.scratch.find().toArray().sort(function(doc1, doc2) { 
    return doc1.a - doc2.a 
  }) 
});

Versus le tri équivalent côté client :

db.scratch.find().toArray().sort(function(doc1, doc2) { 
  return doc1.a - doc2.b 
});