Anda mungkin ingin menggunakan db.eval
jika Anda bertekad untuk melakukan ini di sisi basis data.
Jawaban diambil dari pertanyaan lain:
Saya tidak berpikir ini mungkin secara langsung; sortdocumentation tentu saja tidak menyebutkan cara apa pun untuk menyediakan fungsi perbandingan khusus.
Anda mungkin sebaiknya melakukan pengurutan di klien, tetapi jika Anda benar-benar bertekad untuk melakukannya di server, Anda mungkin dapat menggunakan
db.eval()
untuk mengatur untuk menjalankan pengurutan di server (jika klien Anda mendukungnya).Sortir sisi server:
db.eval(function() { return db.scratch.find().toArray().sort(function(doc1, doc2) { return doc1.a - doc2.a }) });
Dibandingkan dengan pengurutan sisi klien yang setara:
db.scratch.find().toArray().sort(function(doc1, doc2) { return doc1.a - doc2.b });