【问题标题】:MongoDB syntax when updating two different properties with a findOneAndUpdate() [duplicate]使用 findOneAndUpdate() 更新两个不同属性时的 MongoDB 语法 [重复]
【发布时间】:2019-04-17 20:17:50
【问题描述】:

当我想使用相同的 findOneAndUpdate() 更新两个单独的属性时,我正在尝试确定正确的 MongoDB 语法。这就是我所拥有的(它只更新第一个属性:

await Agency.findOneAndUpdate(
  {
    historicId: data.id_number
  },
  {
    $set: {
      "authorizations.supervisor": authorizationsSupervisor,
      $push: {
        "authorizations.policy": firstPolicyObj,
        "authorizations.policy": secondPolicyObj,
        "authorizations.policy": thirdPolicyObj
      }
    }
  },
  {
    returnNewDocument: true
  }
);

构造此语法的正确方法是什么?

文档模型如下所示:

{
   _id: <ObjectId>,
   otherProp: <value>,
   authorizations: {
     supervisor: <ObjectId>,
     department: <value>,
     policy: [ 
       {
         category: <value>,
         requirements: [
           {},
           {}
         ]
       }
     ]
   }
}

【问题讨论】:

    标签: mongodb


    【解决方案1】:
    $set: {
             "authorizations.supervisor": authorizationsSupervisor,
          },
    $push: { 
            "authorizations.policy": { $each: [ firstPolicyObj, secondPolicyObj, thirdPolicyObj] 
          }
    

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 1970-01-01
      • 2016-10-15
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 2019-04-19
      相关资源
      最近更新 更多