Как сделать запрос MongoDB с помощью $ или - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь вернуть пользователя из коллекции MongoDB, которая соответствует указанному имени пользователя или электронной почте:

db.users.find({
    $or:[
        {username: "user1"},
        {email: "mail@mail.com"}
    ]
});

Этот запрос возвращает пустой результат, хотя

db.users.find({username: "user1"});

или

db.users.find({email: "mail@mail.com"});

Возвращает тот же объект, как мне отформатировать запрос, чтобы сделать необязательным указание имени пользователя или адреса электронной почты?

Ответы [ 2 ]

3 голосов
/ 11 февраля 2011

Или оператор стал с версией 1.5.3 mongodb.

Из документации :

$ или

Оператор $ или позволяет вам использовать логическое или выражение для выполнения запросов. Вы даете $ или список выражений, любой из которых может удовлетворить запрос. Новое в MongoDB 1.5.3

Итак, проблема была в старой версии mongodb.

1 голос
/ 11 февраля 2011

Версия 1.2.2, похоже, не полностью поддерживает $ или, версия 1.6.5 поддерживает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...