Możesz użyć db.eval
jeśli jesteś zdecydowany to zrobić po stronie bazy danych.
Odpowiedź wyodrębniona z innego pytania:
Nie sądzę, że jest to możliwe bezpośrednio; sortdocumentation z pewnością nie wspomina o żadnym sposobie dostarczenia niestandardowej funkcji porównania.
Prawdopodobnie najlepiej zrobisz to w kliencie, ale jeśli naprawdę chcesz to zrobić na serwerze, możesz użyć db.eval()
zorganizować uruchomienie sortowania na serwerze (jeśli Twój klient to obsługuje).
Sortowanie po stronie serwera:
db.eval(function() {
return db.scratch.find().toArray().sort(function(doc1, doc2) {
return doc1.a - doc2.a
})
});
W porównaniu z równoważnym sortowaniem po stronie klienta:
db.scratch.find().toArray().sort(function(doc1, doc2) {
return doc1.a - doc2.b
});