Mongoengine ... Как я могу сравнить два поля? - PullRequest
2 голосов
/ 12 марта 2012

Например ..

class Example(Document):
    up = IntField()
    down = IntField()

и .. Я хочу получить документы, чье поле вверх больше или равно вниз. Но .. это проблема.

Мой неправильный код запроса будет ..

Example.objects(up__gte=down)

Как я могу использовать поле, находящееся в mongodb, а не в коде Python, в качестве значения набора запросов?

Ответы [ 2 ]

4 голосов
/ 12 марта 2012

Простой ответ: невозможно. Что-то вроде WHERE A = B в SQL не может быть эффективно реализовано в MongoDB (кроме использования условия $ where, которого следует избегать).

0 голосов
/ 30 января 2015

это может быть то, что вы хотели ::

db.myCollection.find ({$ where: "this.credits == this.debits"});

посмотрите на: http://docs.mongodb.org/manual/reference/operator/query/where/

но я не знаю, как использовать его в mongoengine.

...