2017-09-06 62 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 /)**多於一個條件**。這只是**單一條件**。人們認爲否則是一個真正的問題。當您閱讀文檔時,文檔實際上非常清晰。你有兩個鏈接,所以我建議你自己閱讀。 –