Saya baru mengenal Mongodb dan kerangka kerja agregasi tetapi mempertimbangkan jawabannya Tim B memberi saya datang dengan ini:
db.coll.aggregate(
{ $project : {
"ranking" : {
"$divide" : ["$score", {"$subtract":[new Date(), "$updated"]}]
}
}
},
{ $sort : {"ranking" : 1}})
Menggunakan $project Anda dapat membentuk kembali dokumen untuk memasukkan nilai yang telah dihitung sebelumnya, dalam kasus Anda bidang peringkat. Setelah itu gunakan $sort Anda dapat mengurutkan dokumen berdasarkan peringkat dalam urutan yang Anda suka dengan menentukan 1 untuk menaik atau -1 untuk turun.
Saya minta maaf atas pemformatan kode yang buruk, saya mencoba membuatnya semudah mungkin dibaca.