Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 嵌套数组匹配_Mongodb_Meteor - Fatal编程技术网

Mongodb 嵌套数组匹配

Mongodb 嵌套数组匹配,mongodb,meteor,Mongodb,Meteor,如何匹配嵌套数组中的对象 下面是一个示例对象: _id: "something", array: [[], [{id: "test"}], []] 为了匹配这一点,我尝试了数组。$.id:“test”,但它似乎工作不正常。我相信您实际上指的是作为有效结构: {“\u id”:“array”:[[],[{“\u id”:“test”}],[]} 在其中查找您使用的匹配文档: db.test.find({ "array": { "$elemMatch": { "$elemMatch": { "_

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

下面是一个示例对象:

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

为了匹配这一点,我尝试了
数组。$.id:“test”
,但它似乎工作不正常。

我相信您实际上指的是作为有效结构:

{“\u id”:“array”:[[],[{“\u 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中已修复。由于要记录

我不是指文档的数组,对不起,我想这是个糟糕的例子。你可以认为它只是子对象中的一个元素。我更新了问题。实际上我认为你的答案仍然有效。@ChristianStewart
。find()
只匹配文档。您可以投影以仅显示匹配的元素,但不能使用嵌套数组,因为匹配索引将是“外部”数组的索引。如果只需要匹配元素或数组,请使用聚合框架。