带有嵌入式文档的MongoDB查询数组(3级)

时间:2016-09-19 13:45:47

标签: node.js mongodb

我在MongoDB数据库上有这些数据,我想得到关于刀片的第二个数组。

{
"_id" : ObjectId("..."),
"name" : "Westereems",
"country" : "Netherlands",
"turbines" : [
    {
        "turbine_id" : ObjectId("..."),
        "blades" : [
            {
                "blade_id" : ObjectId("..."),
                "position" : 2,
                "size" : 50,
            }
        ]
    }
]
}

我只希望使用blade_id,位置和大小返回一个。我尝试了这个查询,但我没有得到预期的结果:

db.collection("windfarms").find({"turbines.blades.blade_id" : ObjectId("...")}, {"turbines.blades.$" : 1, "_id" : 0})

此致

1 个答案:

答案 0 :(得分:1)

您可以使用此查询,它不是大型数组项目的最佳查询,但如果您只有上述项目,则可以使用它。

您也可以使用aggregation来使其更加优化。

db.collection("windfarms").find({"turbines.blades.blade_id" : ObjectId("...")}, {"turbines.blades.blade_id":1,"turbines.blades.position":1,"turbines.blades.size":1,"_id":0})