我有这些集合
purchaseorder(采购订单)
{
"_id": "5f0104a8d0c3a06fc9c06625",
"purchaseItems": [
{
"product": "5eff29e9e2708a0ca980762e",
"quantity": 1
},
{
"product": "5eff29e9e2708a0ca980762e",
"quantity": 2
}
],
"totalQuantity": 0,
"documentDate": {
"$date": "2020-07-04T16:00:00.000Z"
}
}
和
产品
{
"_id": "5eff29e9e2708a0ca980762e",
"name": "name",
"code": "code",
"cost": "1",
"srp": "1",
"minimum": "1",
"startEffectiveDate": {
"$date": "2020-07-04T16:00:00.000Z"
}
}
如何将嵌入式数组文档中的购买物品字段加入到产品集合中。我需要类似这样的东西。
{
"_id": "5f0104a8d0c3a06fc9c06625",
"purchaseItems": [
{
"product": {
"_id": "5eff29e9e2708a0ca980762e",
"name": "product name"
},
"quantity": 1
},
{
"product": {
"_id": "5eff29e9e2708a0ca980762e",
"name": "product name 2"
},
"quantity": 1
}
],
"totalQuantity": 0,
"documentDate": {
"$date": "2020-07-04T16:00:00.000Z"
}
}
我尝试使用这个聚合方法,但是结果不正确
[{$lookup: {
from: 'product',
'let': {
purchaseItems: '$purchaseItems'
},
pipeline: [
{
$lookup: {
from: 'product',
'let': {
product: '$product'
},
"pipeline": [
{ "$match": { "$expr": { "$eq": [ "$_id", "$$product" ] } } }
],
"as": "product"
}
}
],
as: 'purchaseItems'
} }]
我对MongoDB不是很熟悉,已经考虑回到SQL。