В MongoDB, как вы получаете набор результатов, где поле X больше, чем поле Y на значение N? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь запросить у моей локальной 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 Ответ

0 голосов
/ 28 декабря 2018

Создайте выражение, которое сначала вычисляет разницу, а затем вы можете сделать сравнение больше, чем

Возьмите, например, этот запрос, который использует $subtractоператор, чтобы получить разницу:

db.getCollection('collection1').find(
    { "$expr": { 
        "$gt": [ 
            { "$subtract": ["$field1", "$field2"] },
            0.25
        ] 
    }}
).sort({"dateAdded" : -1})
...