Може да искате да използвате db.eval
ако сте решени да направите това от страната на базата данни.
Отговор, извлечен от друг въпрос:
Не мисля, че това е възможно директно; документацията за сортиране със сигурност не споменава начин за предоставяне на персонализирана функция за сравнение.
Вероятно е най-добре да направите сортирането в клиента, но ако наистина сте решени да го направите на сървъра, може да сте в състояние да използвате
db.eval()
да организирате да стартирате сортирането на сървъра (ако вашият клиент го поддържа).Сортиране от страна на сървъра:
db.eval(function() { return db.scratch.find().toArray().sort(function(doc1, doc2) { return doc1.a - doc2.a }) });
Сравнено с еквивалентното сортиране от страна на клиента:
db.scratch.find().toArray().sort(function(doc1, doc2) { return doc1.a - doc2.b });