Как отсортировать результаты по пользовательскому выражению, которое я использую в find
?
Коллекция содержит документы со следующими атрибутами, например:
{
"_id" : ObjectId("5ef1cd704b35c6d6698f2050"),
"Name" : "TD",
"Date" : ISODate("2021-06-23T09:37:51.976Z"),
"A" : "19.36",
"B" : 2.04,
}
Я использую следующий запрос find
, чтобы получить записи с Date
с 01.01.2022, а соотношение между 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