В MongoDB, как вы получаете набор результатов, где поле X больше, чем поле Y на значение N?
Я пытаюсь запросить мою локальную MongoDB для документов, где поле X больше, чем поле Y на значение N (в этом случае значение N = 0,25).
У меня сейчас есть:
db.getCollection('collection1').find({ $expr: { $gt: [ "$field1" , "$field2" ] }}).sort({"dateAdded" : -1})
Но это только возвращает результаты, где field1 больше чем field2. Мне нужно, чтобы field1 было больше, чем field2 на 0.25.
Я не могу найти это нигде в документации, я уверен, что упускаю что-то легкое...
Спасибо за вашу помощь.
1 ответ
Создайте выражение, которое сначала вычисляет разницу, а затем вы можете сделать больше, чем сравнение.
Возьмем, к примеру, этот запрос, который использует $subtract
Оператор, чтобы получить разницу:
db.getCollection('collection1').find(
{ "$expr": {
"$gt": [
{ "$subtract": ["$field1", "$field2"] },
0.25
]
}}
).sort({"dateAdded" : -1})