Mongodb 使用let时,$lookup的Mongo聚合不起作用
我在Mongodb 使用let时,$lookup的Mongo聚合不起作用,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我在收藏中有这样的文档a: { "catalogId" : "17582" } { $lookup: { from: "collectionB", let: { catalogId: "$catalogId" }, pipeline: [ { $match: { "product.catalogId": "$$catalogId"
收藏中有这样的文档a
:
{
"catalogId" : "17582"
}
{
$lookup: {
from: "collectionB",
let: {
catalogId: "$catalogId"
},
pipeline: [
{
$match: {
"product.catalogId": "$$catalogId"
}
}
],
as: "something"
}
}
而像这样的文档在a集合B
:
{
"product" : {
"catalogId" : "17582"
}
我将以下聚合应用于collectionA
:
{
"catalogId" : "17582"
}
{
$lookup: {
from: "collectionB",
let: {
catalogId: "$catalogId"
},
pipeline: [
{
$match: {
"product.catalogId": "$$catalogId"
}
}
],
as: "something"
}
}
但我的结果是空的。有人知道为什么吗?提前感谢。查询必须如下所示,请检查此项以获取参考:
db.collectionA.aggregate([{
$lookup: {
from: "collectionB",
let: {
catalogId: "$catalogId"
},
pipeline: [
{
$match: {
$expr: { $eq: ["$product.catalogId", "$$catalogId"] }
}
}
],
as: "something"
}
}])