首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我必须检查条件,如果这两个条件都是真的,那么在MongoDB中它的1 check 0

我必须检查条件,如果这两个条件都是真的,那么在MongoDB中它的1 check 0
EN

Stack Overflow用户
提问于 2021-09-23 17:15:24
回答 1查看 65关注 0票数 0

我必须检查value是否是less equal 100"fl1":1 then "fl2": 1 else :0。请检查预期的输出。

代码语言:javascript
运行
复制
{
    "data": [
        {
            "value": 100,
             "fl" :1
        },
        {
            "value": 300,
             "fl" :0
        },
        {
            "value": 14,
             "fl" :0
        },
        {
            "value": 3
             "fl" :0
        },
        {
            "value": 30,
             "fl" :1
        },
        {
            "value": 60,
             "fl" :1
        }
    ]
}

预期产出:

代码语言:javascript
运行
复制
{
    "data": [
        {
            "value": 100,
             "fl" :1,
             "fl2":1
        },
        {
            "value": 300,
             "fl" :0,
             "fl2":0
        },
        {
            "value": 14,
             "fl" :0,
             "fl2":0
        },
        {
            "value": 3
             "fl" :0,
             "fl2":0
        },
        {
            "value": 30,
             "fl" :1,
             "fl2":1
        },
        {
            "value": 60,
             "fl" :1,
             "fl2":1
        }
    ]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-23 17:32:07

查询

  • 数据地图
  • 如果value<100fl=1 =>使用merge来添加字段fl2:1
  • 否则,请使用合并以添加字段fl2:0

这里的测试代码

代码语言:javascript
运行
复制
db.collection.aggregate([
  {
    "$set": {
      "data": {
        "$map": {
          "input": "$data",
          "in": {
            "$cond": [
              {
                "$and": [
                  {
                    "$lte": [
                      "$$m.value",
                      100
                    ]
                  },
                  {
                    "$eq": [
                      "$$m.fl",
                      1
                    ]
                  }
                ]
              },
              {
                "$mergeObjects": [
                  "$$m",
                  {
                    "fl2": 1
                  }
                ]
              },
              {
                "$mergeObjects": [
                  "$$m",
                  {
                    "fl2": 0
                  }
                ]
              }
            ]
          },
          "as": "m"
        }
      }
    }
  }
])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69304357

复制
相关文章

相似问题

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