2017-09-06 15 views
0

でクエリを見つける私はMongoDBの中で、次の文書構造を持っている:のMongoDBは、ネストされた文書

[{ 
    "_id": "59afce079af65f48de8fb609", 
    "some_fields": "...", 
    "members": [ 
    { 
     "some_fields": "...", 
     "device_id": "7FD45D19-F746-4293-A410-60B485E617F2", 
     "_id": "59afce079af65f48de8fb60a" 
    }, 
    { 
     "some_fields": "...", 
     "device_id": "7AC1635B-3E39-4F43-A4D4-4927FA072F89", 
     "_id": "59afd01cff27894e8237eb2d" 
    } 
    ] 
}] 

は、どのように私はマングースの検索を使用してdocuments which members contain object where device_id == "given_id"を得ることができますか?

+0

あなたが何をしようとしたのですか? [埋め込みドキュメントのクエリ](https://docs.mongodb.com/manual/tutorial/query-embedded-documents/)も読んでいますか? –

答えて

0

はこのために試してみてください:

使用elemMatch:

db.collection.find({members: {$elemMatch: {device_id:'your ID'}}}) 
+1

あなたは '' $ elemMatch'を必要としません。シンプルな["ドット表記"](https://docs.mongodb.com/manual/core/document/#dot-notation)が行います。これは本当に有害な誤った情報です。 –

+0

@NeilLunn elemMatchを使用すると、彼はさらに1要素を比較することができます。 – Subburaj

+0

あなたは**必要なだけです** ['$ elemMatch'](https://docs.mongodb.com/manual/reference/operator/query/elemMatch /)**複数の条件の場合**。これは単なる状態**です。そうでなければ思う人々は本当の問題です。あなたがそれを読むとき、ドキュメントは実際には非常に明確です。あなたはそこに両方の​​リンクを持っているので、自分で読むことをお勧めします。 –

関連する問題