【发布时间】:2020-04-16 13:38:08
【问题描述】:
我有两个收藏。 一个包含一组对象。这些对象拥有一个字段,该字段具有另一个集合中文档的 id。 目标是用文档“替换” ref。听起来很简单,但我不知道如何存档。
例如
集合“产品”
{ "_id": 1,
"alias": "ProductA"
},
{ "_id": 2,
"alias": "ProductC"
}
集合“订单”
{ "_id": 5765,
"cart": [
{
"product": 1,
"qty": 7
}, {
"product": 2,
"qty": 6
}
]
}
我需要的查询是这样的:
{ "_id": 5765,
"cart": [
{
"product": {
"_id": 1,
"alias": "ProductA"
},
"qty": 7
}, {
"product": {
"_id": 2,
"alias": "ProductC"
},
"qty": 6
}
]
}
我尝试了一个简单的查找,但该数组将只包含产品。我需要改变什么?
{
$lookup: {
from: "products",
let: {
tmp: "$cart.product"
},
pipeline: [
{
$match: {
$expr: {
$in: ["$_id", "$$tmp"]
}
}
}
],
as: "cart.product"
}
}
感谢您的帮助。
【问题讨论】:
标签: mongodb aggregation-framework lookup