一次更新所有对象属性

时间:2018-04-02 11:34:03

标签: json node.js crud

我有一些复杂/嵌套的对象。

var acctTypes = {
"prop1" : "aaaa" , 
"prop2" : "bbbb" , 
"prop3" : [
  { 
    ... ,
    "propToUpdate" : " ... " , 
    ...
  },
{ 
    ... ,
    "propToUpdate" : " ... " , 
    ...
  },
{ 
    ... ,
    "propToUpdate" : " ... " , 
    ...
  }
] , 
"prop4" : "xxxx"
} 

我想知道是否有更优雅的方式来更新除foreach循环之外的特定属性(propToUpdate)。

由于

1 个答案:

答案 0 :(得分:-1)

你可以这样做,但问题是你需要像过滤器查询中那样嵌入属性,如mongodb

  

重要

     

您必须将数组字段包含在查询文档中。

虽然你可以这样做:

db.getCollection('acctTypes').update({_id: ObjectId("5ac1e018be3f841f61b4513a"), "prop3_filter_property": prop3_filter_value}, {$set: {"prop3.$.propToUpdate" : "updatedValue"}})

在猫鼬中:

AcctTypes.update(
        { 
          _id: id, 
          "prop3_filter_property": prop3FilterValue
        }, 
        {
          $set : {
           "prop3.$.propToUpdate": updateValue
          }
        }
      )