выбор значений массива с помощью mongodb - PullRequest
0 голосов
/ 25 июля 2011

У меня есть следующие записи JSON на моем mongodb:

{a:[10, 20, 30, 40]}
{a:[10]}
{a:[10, 20]}
{a:[10, 30]}

Я хочу выбрать все 'a', который содержит ((10 ИЛИ 20) И (30 ИЛИ 40)) ... в этомНапример, только первый и последний

Я пытался (безуспешно) использовать $ и и $ или подобное: {$ and: [{$ or: [{'a': 10}, {'a': 20}]}, {$ or: [{'a': 30}, {'a': 40}]}]}

1 Ответ

0 голосов
/ 25 июля 2011

$ и работает только с версии 1.9.1. Проверьте db.version (), и вы увидите, что у вас более низкая версия, чем эта, поскольку она еще не является загружаемым пакетом (последняя стабильная версия 1.8.2, последняя версия 1.9.0). Оба должны делать то, что вы хотите, если версия <1.9.1: </p>

 db.test.find({$or:[{a:10},{a:20}], $or:[{a:30},{a:40}]})
 db.test.find({a:{$in:[10,20]}, a:{$in:[30,40]}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...