嵌套数组匹配

时间:2014-05-24 02:03:50

标签: mongodb meteor

如何匹配嵌套数组中的对象?

以下是一个示例对象:

_id: "something", array: [[], [{id: "test"}], []]

为了匹配这一点,我尝试了array.$.id: "test",但它似乎无法正常工作。

1 个答案:

答案 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