mongodb: массив содержит, а массив не содержит - PullRequest
1 голос
/ 28 апреля 2011

Как проверить, что list1 содержит A, а list2 не содержит A? list1 и list2 являются массивом (list2 может быть пустым или не заданным)

Я пробовал запрос:

{
  'list1':'A', 
  'list2':{ '$ne':'A'}
}

но я получаю результаты, если list1 содержит A, а list2 содержит A. если я удалю 'list2':{ '$ne':'A'} ... результаты будут такими же, лайки, часть list2 не будет иметь значения

странно ... я что-то делаю не так?

1 Ответ

3 голосов
/ 01 мая 2011

Я обновлял это неправильно.Должно быть так:

db.test.update({ _id: X }, {'$push': {"a2": 'A'}});

Или вот так:

db.test.update({ _id: X }, {'$set': {"a2": ['A']}});

документ выглядит так:

{ "_id" : ObjectId("4dbacb40696b6ede04c5ef97"), "a1" : [ "A" ], "a2" :
{ "0" : "A" } }

Где правильно, что {"0": "A"} не равнодо A

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