Misschien wilt u db.eval
. gebruiken als je vastbesloten bent om dit aan de database-kant te doen.
Antwoord geëxtraheerd uit een andere vraag:
Ik denk niet dat dit direct mogelijk is; de sortdocumentatie vermeldt zeker geen manier om een aangepaste vergelijkingsfunctie te bieden.
Je kunt het sorteren waarschijnlijk het beste in de client doen, maar als je echt vastbesloten bent om het op de server te doen, kun je misschien db.eval()
gebruiken om de sortering op de server uit te voeren (als uw cliënt dit ondersteunt).
Server-side sorteren:
db.eval(function() {
return db.scratch.find().toArray().sort(function(doc1, doc2) {
return doc1.a - doc2.a
})
});
Vergeleken met de equivalente sortering aan de clientzijde:
db.scratch.find().toArray().sort(function(doc1, doc2) {
return doc1.a - doc2.b
});