จะจัดเรียงผลลัพธ์ตามนิพจน์ที่กำหนดเองซึ่งฉันใช้ใน find
ได้อย่างไร
คอลเลกชันประกอบด้วยเอกสารที่มีคุณสมบัติดังต่อไปนี้ เช่น:
{
"_id" : ObjectId("5ef1cd704b35c6d6698f2050"),
"Name" : "TD",
"Date" : ISODate("2021-06-23T09:37:51.976Z"),
"A" : "19.36",
"B" : 2.04,
}
ฉันใช้แบบสอบถาม find
ต่อไปนี้เพื่อรับบันทึกที่มี Date
ตั้งแต่ปี 2022-01-01 และอัตราส่วนระหว่าง A
ถึง B
ต่ำกว่า 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
]
}
})
ตอนนี้ ฉันไม่สามารถหาวิธีที่เหมาะสมในการจัดเรียงผลลัพธ์ตามอัตราส่วนนี้ได้
$addFields
สามารถใช้เพื่อคำนวณค่าที่ได้รับ และ $sort จะช่วยให้คุณสามารถเรียงลำดับค่าที่คำนวณได้ - person prasad_   schedule 24.11.2020