首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复这个mongodb错误?:MongoError:'energy.$cond‘中的美元($)前缀字段'$cond’对于存储无效

如何修复这个mongodb错误?:MongoError:'energy.$cond‘中的美元($)前缀字段'$cond’对于存储无效
EN

Stack Overflow用户
提问于 2021-02-23 23:14:12
回答 1查看 49关注 0票数 1

当我尝试对mongoDB使用以下代码时,我得到了这个错误:

代码语言:javascript
复制
var updateDoc = {
    $set: { 
        energy: { 
            $cond: { 
                if: { $gt: [ { $add: [ "$energy", 20 ] }, 100 ] }, 
                then: 100, 
                else: { $add: [ "$energy", 20 ] } 
            } 
        } 
    }
  }

我如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-23 23:54:10

$cond是一个聚合运算符,update不允许在这个简单查询中使用该运算符,

看看从MongoDB v4.2开始的update with aggregation pipeline

您只需要将updateDoc对象包装到数组中,

代码语言:javascript
复制
var updateDoc = [
  {
    $set: {
      energy: {
        $cond: {
          if: { $gt: [{ $add: ["$energy", 20] }, 100] },
          then: 100,
          else: { $add: ["$energy", 20] }
        }
      }
    }
  }
]

Playground

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

https://stackoverflow.com/questions/66335817

复制
相关文章

相似问题

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