Možná budete chtít použít db.eval
pokud jste rozhodnuti to udělat na straně databáze.
Odpověď extrahovaná z jiné otázky:
Nemyslím si, že je to možné přímo; sortdocumentation rozhodně nezmiňuje žádný způsob, jak poskytnout vlastní funkci porovnání.
Pravděpodobně nejlépe uděláte třídění v klientovi, ale pokud jste opravdu rozhodnuti to udělat na serveru, možná budete moci použít
db.eval()
zařídit spuštění řazení na serveru (pokud to váš klient podporuje).Řazení na straně serveru:
db.eval(function() { return db.scratch.find().toArray().sort(function(doc1, doc2) { return doc1.a - doc2.a }) });
Oproti ekvivalentnímu řazení na straně klienta:
db.scratch.find().toArray().sort(function(doc1, doc2) { return doc1.a - doc2.b });