首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >$exists在MongoDB $cond中的应用

$exists在MongoDB $cond中的应用
EN

Stack Overflow用户
提问于 2022-03-04 09:25:31
回答 1查看 1.7K关注 0票数 4

对于背景,我必须在集合中创建一个字段,但前提是另一个已知字段(数组)不是空的。我试图用$and和一些条件来构建一个布尔过滤器:

代码语言:javascript
运行
复制
$set: {
  clientsAllowed: {
            $cond: {
              if: {
                $and: [
                  {
                    businessAllowed: { $exists: true },
                  },
                  {
                    businessAllowed: { $type: "array" },
                  },
                  {
                    businessAllowed: { $ne: [] },
                  },
                ],
              },
              then: [...],
              else: [...],
            },
          }
}

但我知道这个错误:

无效的$set :引起的::无法识别的表达式'$exists‘

$exists的格式是否错误?还是$and的舞台?有什么想法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2022-03-04 09:43:13

businessAllowed的cond类型就足够了。你不需要检查是否存在。

代码语言:javascript
运行
复制
db.collection.aggregate([
  {
    $set: {
      clientsAllowed: {
        $cond: {
          if: {
            $and: [
              {
                "$eq": [
                  {
                    $type: "$businessAllowed"
                  },
                  "array"
                ]
              },
              {
                $ne: [
                  "$businessAllowed",
                  []
                ]
              }
            ]
          },
          then: [],
          else: []
        }
      }
    }
  }
])

蒙古操场

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

https://stackoverflow.com/questions/71349221

复制
相关文章

相似问题

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