Du kanske vill använda db.eval
om du är fast besluten att göra detta på databassidan.
Svaret hämtat från en annan fråga:
Jag tror inte att detta är möjligt direkt; sortdokumentationen nämner verkligen inte något sätt att tillhandahålla en anpassad jämförelsefunktion.
Du är förmodligen bäst av att göra sorteringen i klienten, men om du verkligen är fast besluten att göra det på servern kanske du kan använda
db.eval()
för att ordna att sorteringen körs på servern (om din klient stöder det).Sortering på serversidan:
db.eval(function() { return db.scratch.find().toArray().sort(function(doc1, doc2) { return doc1.a - doc2.a }) });
I motsats till motsvarande sortering på klientsidan:
db.scratch.find().toArray().sort(function(doc1, doc2) { return doc1.a - doc2.b });