Node.js mongodb中基于if-else条件的更新状态

Node.js mongodb中基于if-else条件的更新状态,node.js,mongodb,typescript,if-statement,mongodb-query,Node.js,Mongodb,Typescript,If Statement,Mongodb Query,没有其他解决方案 findOneAndUpdate( {"_id": ObjectId("5714ce0a4514ef3ef68677fd")}, $cond: { if: { $eq: [ "$isRequired", true ] }, then: { "status": "Done" }, else: { { "status": "Approved"

没有其他解决方案

findOneAndUpdate( {"_id": ObjectId("5714ce0a4514ef3ef68677fd")}, $cond: { if: { $eq: [ "$isRequired", true ] }, then: { "status": "Done" }, else: { { "status": "Approved" } } )

基于isRequire的相同集合状态更新为true或false。

首先,您的查询语法不正确,缺少查询对象后的{}

更新查询由以下内容组成:update{query},{update},并且您必须写入:update{query},update

此外,由于是聚合阶段,因此不能在更新查询中使用,但由于Mongo 4.2允许聚合阶段,因此您可以执行以下查询:

db.collection.update({
  "_id": "5714ce0a4514ef3ef68677fd"
},
[
  {
    "$set": {
      "status": {
        "$cond": {
          if: {
            $eq: [
              "$isRequired",
              true
            ]
          },
          then: "Done",
          else: "Approved"
        }
      }
    }
  }
])

具有假值和真值的示例

Hi!欢迎来到StackOverflow。你能给我们提供更多关于问题是什么的细节,你尝试了什么,也许你的代码有更多的上下文吗?请结帐帮助你的同事。