Potresti voler usare db.eval
se sei determinato a farlo sul lato database.
Risposta estratta da un'altra domanda:
Non penso che questo sia possibile direttamente; il sortdocumentation certamente non menziona alcun modo per fornire una funzione di confronto personalizzata.
Probabilmente è meglio eseguire l'ordinamento nel client, ma se sei davvero determinato a farlo sul server potresti essere in grado di utilizzare db.eval()
per organizzare l'esecuzione dell'ordinamento sul server (se il tuo client lo supporta).
Ordinamento lato server:
db.eval(function() {
return db.scratch.find().toArray().sort(function(doc1, doc2) {
return doc1.a - doc2.a
})
});
Rispetto all'ordinamento lato client equivalente:
db.scratch.find().toArray().sort(function(doc1, doc2) {
return doc1.a - doc2.b
});