我的总$group是:
{
$group: {
_id: { ["$dayOfYear"]: "$TagDateCreated" },
disqualified: {
$addToSet: {
$cond: {
if: { $in: [ "$TagId", [109,220,115,113,238] ]},
then: "$ContactId",
else: null
}
}
}
}
}
这给了我一组唯一的contactId作为取消资格,但我需要删除空值。我试着省略了$cond中的or语句以及$project中的各种$filters,这些语句要么不删除任何东西,要么删除所有内容,要么出错。
发布于 2018-09-06 09:28:45
您可以在$group
之后添加下一个管道阶段
{
$addFields: {
disqualified: {
$filter: {
input: "$disqualified",
as: "d",
cond: {
$ne: [ "$$d", null ]
}
}
}
}
}
$addFields将覆盖现有数组,并使用$filter可以删除null
值。
https://stackoverflow.com/questions/52209267
复制