与其他问题不同,有人问他们只想回复一件商品。我有一个项目返回,我需要数组返回中的所有匹配对象。但是,与我的查询匹配的第二个对象将被完全忽略。
这是项目集合中的一个项目:
{
name: "soda",
cost: .50,
inventory: [
{ flavor: "Grape",
amount: 8 },
{ flavor: "Orange",
amount: 4 },
{ flavor: "Root Beer",
amount: 15 }
]
}
以下是我输入mongo shell的查询:
Items.find({"inventory.amount" : { $lte : 10} } , { name : 1, "inventory.$.flavor" : 1})
结果如下:
"_id" : ObjectId("59dbe33094b70e0b5851724c"),
"name": "soda"
"inventory" : [
{ "flavor" : "Grape",
"amount" : 8,
}
]
这就是我想要它回到我身边的原因:
"_id" : ObjectId("59dbe33094b70e0b5851724c"),
"name": "soda"
"inventory" : [
{ "flavor" : "Grape",
"amount" : 8
},
{ "flavor" : "Orange",
"amount" : 4
}
]
我是mongo的新手,并且想要熟悉它。我已经阅读了文档,但无法找到解决方案,尽管我很可能忽略了它。我真的很喜欢一些帮助。提前谢谢。
答案 0 :(得分:0)
首先,您可以通过此查询获得结果
db.Items.find({"inventory.amount" : { $lte : 10} } , { name : 1, "inventory.flavor" : 1 , "inventory.amount" : 1})