我有一些类似以下的东西:
db.collection.aggregate(
{ $match: {...} },
{
"$addFields": {
"assignee.fullName": { "$concat": ["$assignee.firstName", " ", "$assignee.lastName"] }
}
}
)问题是,对于没有“assignee”属性的文档,$addFields会添加以下内容:
assignee: {fullName: null}因此,我正在寻找一种方法,如果字段存在,则只添加该字段,否则添加:
assignee: null发布于 2020-09-24 10:43:42
由于您使用的是concat,因此它将始终提供新字段。所以你可以做的是,通过你的代码,你可以检查一个条件
{
$addFields: {
assignee: {
$cond: [
{
$eq: [
"$assignee.fullName",
null
]
},
null,
"$assignee"
]
}
}
}Working
https://stackoverflow.com/questions/64038578
复制相似问题