gpt4 book ai didi

mongodb - 使用 $lookup 获取子文档

转载 作者:可可西里 更新时间:2023-11-01 10:10:41 26 4
gpt4 key购买 nike

我想使用 $lookup 从另一个集合中获取子文档,但它不起作用。目前脑死亡...

我有一个交易集合

示例交易

{
type: 'PURCHASE', // but it can be something else also eg ORDER
reference: '11', // String
amount: 50,
date: 2018-07-18T10:00:00.000Z
}

我有一个要购买的收藏品

{
code: 11 // Integer
name: 'Product X',
amount: 50
}

我的聚合如下

Purchase.aggregate([ 
{
$lookup:
{
from: "transactions",
let: { code: '$code' },
pipeline: [
{

},
{
$match: { $expr:
{ $and:
[
{ $eq: [ "$reference", "$$code" ] },
{ $eq: [ "$type", "PURCHASE" ] }
]
}
}

}
],
as: "transactions",

}
}
]);

结果是一个空的 tarnsactions 数组...

最佳答案

您可以在 mongodb 3.6 中尝试以下聚合。只需使用 $toLowercode 类型从整数更改为字符串即可聚合或可以使用 $toString在 mongodb 4.0

Purchase.aggregate([ 
{ "$lookup": {
"from": "transactions",
"let": { "code": { "$toLower": "$code" } },
"pipeline": [
{ "$match": {
"$expr": { "$eq": [ "$reference", "$$code" ] },
"type": "PURCHASE"
}}
],
"as": "transactions"
}}
])

关于mongodb - 使用 $lookup 获取子文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51850519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com