我在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})
此致
答案 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})