mongodb: поиск по массиву хэшей - PullRequest
3 голосов
/ 26 марта 2012

db.test.insert ({_ ID: 1, сообщения: [{типа: 'смс'}]})

db.test.find () {"_id": 1, "communications": [{"type": "sms"}]}

Хорошо, вставлено

db.test.find ({ 'связи': {типа: 'смс'}}) {"_id": 1, "communications": [{"type": "sms"}]}

Хорошо, я могу найти его, если оно точно соответствует

db.test.update ({_ id: 1}, {communications: [{type: 'sms', call_id: 9878}]}

Теперь я обновил его так, чтобы хэш, вложенный в массив, имел два ключа

.test.update ({_ id: 1}, {communications: [{type: 'sms', call_id: 9878}]})

Но я не могу найти его, потому что хэш не является точным соответствием! Нееет!

db.test.find ({ '' связи: {Тип: 'SMS'}}). Count () => 0

Итак, как мне выполнить такой поиск, в котором я хочу сопоставить один из ключей в хэше в массиве?

1 Ответ

2 голосов
/ 26 марта 2012

Если я правильно понял (у меня нет никаких гарантий!), То я думаю, что вы ищете точечную запись.

db.test.find({'communications.type':'sms'}).count()

Вот ссылка на MongoDb.org со всеми примерами.

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