2012-03-12 4 views
1

Например ..Mongoengine ... Как сравнить два поля?

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

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

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

Example.objects(up__gte=down) 

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

ответ

4

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

+0

действительно ?????????? – Anderson

+1

@WebEngineer yup. http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D – mpobrien

0

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

db.myCollection.find ({$, где: "this.credits == this.debits"});

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

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

+0

получить его. mongoengien сделать это, как показано ниже: Example.objects.where ("this.a> = this.b") – hackrole