2012-03-26 14 views
3

db.test.insert({_ ID:1、コミュニケーション:[{タイプ: 'SMS'}]})のMongoDB:ハッシュの配列を検索

db.test.find() { " _id」:1、 "通信":[{ "タイプ": "SMS"}]}

[OK]を、その挿入

db.test.find({ 'コミュニケーション':{タイプ: 'sms'}}) {"_id":1、 "communications":[{"type": "sms"}]}

[OK]を、私はそれを見つけることができ、その場合、完全一致

db.test.update({_ ID:1}、{コミュニケーション:[{タイプ: 'SMS'、CALL_ID:9878} ]}

今はそのような配列にネストされたハッシュは、2つのキー

.test.update({_ ID有すること更新:1}、{コミュニケーション:[{タイプ: 'SMS' を、call_id:9878}]})

しかし、私はそれを見つけることができませんが、ハッシュは完全に一致していません! NOOOOO!

db.test.find({ 'コミュニケーション':{タイプ: 'SMS'}})。(カウント) =>だから、0

、私はそのような検索を行うことができますどのようにどこで配列のハッシュのキーの1つに一致させたいのですか?

+0

正解(ドット表記)のためのAdaTheDevの応答を参照してください – zeedre

答えて

2

私が正しく理解していれば(私が持っている保証はありません)、あなたが探しているのはドット表記です。

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

ここにはすべての例が入っています。reference on MongoDb.orgです。

+0

うわー、私はそれを逃したとは思わない。 AdaTheDevありがとうございます。 – zeedre

+0

$ elemMatch演算子も見てください。これは、ほとんどの場合、要素フィルタリングのより適切なアプローチです。 –