2012-03-26 65 views
3

db.test.insert({_ ID:1,通信:[{類型: 'SMS'}]})mongodb的:搜索哈希的陣列

db.test.find() {「 _id」:1, 「通信」:[{ 「類型」: 「SMS」}]}

好了,它的插入

db.test.find({ '通信':{式:'sms'}}) {「_id」:1,「communications」:[{「type」:「sms」}]}

好的,我可以找到它,如果它的精確匹配

db.test.update({_ ID:1},{通信:[{類型: 'SMS',CALL_ID:9878} ]}

現在我更新它使得嵌套陣列中的散列有兩個密鑰

.test.update({_ ID:1},{通信:[{類型: 'SMS' ,call_id:9878}]})

但我找不到它bc哈希不是完全匹配!真是沒有!

db.test.find({ '通信':{類型: 'SMS'}})。COUNT() => 0

所以,如何可以做這樣的一個搜索我想在數組中的某個鍵上匹配哪個鍵?

+0

查看AdaTheDev對答案的正確答案(點符號) – zeedre 2012-03-26 16:11:09

回答

2

如果我理解正確(我沒有保證!),那麼我認爲你要找的是點符號。

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

這裏是所有例子的reference on MongoDb.org

+0

哇,不能相信我錯過了那個。 THanks AdaTheDev。 – zeedre 2012-03-26 16:10:07

+0

另請參見$ elemMatch操作符,這是大多數情況下更適合元素過濾的方法。 – 2012-03-26 16:25:00