首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mongodb -将$addField与$exists相结合

mongodb -将$addField与$exists相结合
EN

Stack Overflow用户
提问于 2020-09-24 10:10:29
回答 1查看 175关注 0票数 0

我有一些类似以下的东西:

代码语言:javascript
运行
复制
db.collection.aggregate(
    { $match: {...} },
    {
        "$addFields": {
            "assignee.fullName": { "$concat": ["$assignee.firstName", " ", "$assignee.lastName"] }
        }
    }
)

问题是,对于没有“assignee”属性的文档,$addFields会添加以下内容:

代码语言:javascript
运行
复制
assignee: {fullName: null}

因此,我正在寻找一种方法,如果字段存在,则只添加该字段,否则添加:

代码语言:javascript
运行
复制
assignee: null
EN

Stack Overflow用户

发布于 2020-09-24 10:43:42

由于您使用的是concat,因此它将始终提供新字段。所以你可以做的是,通过你的代码,你可以检查一个条件

代码语言:javascript
运行
复制
{
    $addFields: {
      assignee: {
        $cond: [
          {
            $eq: [
              "$assignee.fullName",
              null
            ]
          },
          null,
          "$assignee"
        ]
      }
    }
  }

Working

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64038578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档