在这段代码中,我试图根据猫鼬查询的产品尺寸来匹配文档。 我尝试了此查询,但没有用。谁能告诉我这段代码有什么问题吗?
查询我已通过:
{ $match: { "product_items.product_size": { value: 22, unit: "ml" } } }
**结构:**
[
{
"product_name": "sample product",
"product_items": [
{
"product_item_number": "796363011028",
"product_size": {
"value": 22,
"unit": "ml"
}
}
]
}
]
答案 0 :(得分:1)
这种方法行不通,因为product_items.product_size
的值是对象数组,而您正在尝试将单个对象与该数组进行比较。在处理对象数组时使用$elemMatch更可靠:
db.collection.aggregate([
{
$match: {
"product_items": {
$elemMatch: {
"product_size.value": 22,
"product_size.unit": "ml"
}
}
}
}
])