【发布时间】:2013-08-28 02:52:42
【问题描述】:
我想对多个子文档的给定嵌套值执行查询。
在下面的示例中,我想跨多个“product_types”对象执行搜索。
{
"product_types": {
"type_1": [
{
name: "something",
price: 100
},
{
name: "something else",
price: 50
}
],
"type_2": [
{
name: "another one",
price: 20
},
{
name: "and a last one",
price: 30
}
]
}
}
我知道美元符号匹配任何子文档。这是我想出的以“价格”值为 100 的方式获得所有产品的方法。但它不起作用。有什么想法吗?
db.inventory.find( { product_types.$.price : 100 } )
PS:我预计一些答案会说这种存储产品的数据库设计会非常糟糕,我同意;这只是说明我想要执行的查询类型的示例。
【问题讨论】:
-
位置运算符 ($) 匹配数组中的元素。在您的情况下,
product_type不是数组。即使是正在尝试的find()查询也不正确(假设product_type是一个数组)。 -
谢谢!找到关于该主题的另一篇文章。 stackoverflow.com/questions/6179871/…
标签: mongodb