И и ИЛИ в запросе Монго - PullRequest
       22

И и ИЛИ в запросе Монго

3 голосов
/ 09 августа 2011

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

Запрос:

db.questions.find(
    {'$and': [
        {'answers.s_user_id': {'$ne': s_user_id}},
        {'$or': [
                {'s_text': re.compile(s_term, re.IGNORECASE)},
                {'choices': re.compile(s_term, re.IGNORECASE)}
        ]}
    ]}
)

Любые советы приветствуются.

Ответы [ 2 ]

6 голосов
/ 09 августа 2011

Я только что нашел проблему, как описано здесь: https://jira.mongodb.org/browse/SERVER-2585

Вложенный $ OR не поддерживается до MongoDB 1.9.1 по состоянию на 7-24-2011. Я на более старой версии.

1 голос
/ 03 июля 2014
Please find the query
AND Queries With Multiple Expressions Specifying the Same Operator

Consider the following example:

db.inventory.find( {
    $and : [
        { $or : [ { price : 0.99 }, { price : 1.99 } ] },
        { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
    ]
} )
...