如何匹配嵌套数组中的对象?
以下是一个示例对象:
_id: "something", array: [[], [{id: "test"}], []]
为了匹配这一点,我尝试了array.$.id: "test"
,但它似乎无法正常工作。
答案 0 :(得分:0)
我相信你实际上是一个有效的结构:
{ "_id" : "array" : [ [ ], [ { "_id" : "test" } ], [ ] ] }
在其中查找您使用的匹配文档:
db.test.find({ "array": { "$elemMatch": { "$elemMatch": { "_id": "test" } } } })
我希望在minimongo中正确支持,但无论如何,这是MongoDB语法的正确服务器端。
正如附注所示,2.6之前的MongoDB版本可能允许这样做:
db.test.find({ "array": { "$elemMatch": { "_id": "test" } } })
但它不应该因为这是一个bug而是在2.6中修复。由于记录在案DOCS-3434