2017-09-06 66 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 /)**多于一个条件**。这只是**单一条件**。人们认为否则是一个真正的问题。当您阅读文档时,文档实际上非常清晰。你有两个链接,所以我建议你自己阅读。 –