【发布时间】:2021-07-20 19:15:49
【问题描述】:
为什么使用$match时什么都没有返回?
{
$lookup: {
from: 'users',
as: 'user',
let: {
"blogIds": "$blog.id"
},
pipeline: [{
$project: {
id: 1,
user_name: 1,
picture: 1,
blogs: 1
},
},
{
$match: {
$expr: {
$in: ["$$blogIds", "$blogs"]
}
}
}
]
}
}
如果我删除$match 并添加$addFields,我会得到以下结果:
{
$lookup: {
from: 'users',
as: 'user',
let: {
"blogIds": "$blog.id"
},
pipeline: [{
$project: {
id: 1,
user_name: 1,
picture: 1,
blogs: 1
},
},
{
$addFields: {
field: "$$blogIds"
}
},
]
}
}
文档示例:
【问题讨论】:
标签: javascript mongodb mongoose mongodb-query aggregation-framework