使用 let 时$lookup不起作用的 Mongo 聚合



我在collectionA中有这样的文档:

{ 
"catalogId" : "17582"
}

像这样的文件在collectionB

{ 
"product" : {
"catalogId" : "17582"
}

我正在将以下聚合应用于collectionA

{
$lookup: {
from: "collectionB",
let: {
catalogId: "$catalogId"
},
pipeline: [
{
$match: {
"product.catalogId": "$$catalogId"
}
}         
],
as: "something"
}
}

但我有一个空的结果。有人知道为什么吗?提前谢谢。

查询必须如下所示,检查此$lookup以获取 ref :

db.collectionA.aggregate([{
$lookup: {
from: "collectionB",
let: {
catalogId: "$catalogId"
},
pipeline: [
{
$match: {
$expr: { $eq: ["$product.catalogId", "$$catalogId"] }
}
}
],
as: "something"
}
}])

最新更新