【发布时间】:2021-11-23 21:59:15
【问题描述】:
我有两个系列,一个是广告系列,另一个是订单。 我必须过滤每个广告系列的订单。所以我正在做的是获取所有广告系列,然后查找符合某些特定条件的订单。
[
{
$match: { type: 'FOLLOWUP' }
},
{
$lookup: {
from: 'orders',
as: 'orders',
pipeline: [
{
$match: {
'status': { $in: '$activeFilter' }
}
}
]
}
}
]
在上面的示例中,status 包含一些特定的字符串,activeFilter 具有包含该活动的活动状态的字符串数组。 activeFilter 是一个数组,但我收到 $in 需要一个数组的错误。
任何帮助将不胜感激。
【问题讨论】:
-
activeFilter从何而来?你的意思是把
$in: activeFilter? -
activeFilter 是一个保存在活动中的数组,每个活动都不同,它来自活动文档,这就是为什么我在代码中写了“$activeFilter”,它不是变量。
-
好的。如果您的管道的第一步返回许多活动,每个活动在 activeFilter 中都有不同的元素列表,那么您希望它在 oders 匹配步骤中如何工作?它应该是所有不同 activeFilters 的 concat 吗?应该是一个特定的activeFilter吗?你可能想从这里开始docs.mongodb.com/manual/reference/operator/aggregation/lookup/…
标签: node.js mongodb aggregation-framework aggregate aggregation