Bagaimana cara mengurutkan hasil berdasarkan ekspresi khusus yang saya gunakan di find
?
Koleksinya berisi dokumen dengan atribut berikut misalnya:
{
"_id" : ObjectId("5ef1cd704b35c6d6698f2050"),
"Name" : "TD",
"Date" : ISODate("2021-06-23T09:37:51.976Z"),
"A" : "19.36",
"B" : 2.04,
}
Saya menggunakan kueri find
berikut untuk mendapatkan catatan dengan Date
sejak 01-01-2022 dan rasio antara A
dan B
lebih rendah dari 0.1
:
db.getCollection('my_collection').find(
{
"experationDate" :
{
$gte: new ISODate("2022-01-01 00:00:00.000Z")
},
"$expr":
{
"$lte": [
{ "$divide": ["$A", "$B"] },
0.1
]
}
})
Sekarang, saya tidak dapat menemukan cara yang tepat untuk mengurutkan hasil berdasarkan rasio ini.
$addFields
dapat digunakan untuk menghitung nilai turunan dan $sort akan memungkinkan Anda mengurutkan berdasarkan nilai yang dihitung. - person prasad_   schedule 24.11.2020