我有一些复杂/嵌套的对象。
var acctTypes = {
"prop1" : "aaaa" ,
"prop2" : "bbbb" ,
"prop3" : [
{
... ,
"propToUpdate" : " ... " ,
...
},
{
... ,
"propToUpdate" : " ... " ,
...
},
{
... ,
"propToUpdate" : " ... " ,
...
}
] ,
"prop4" : "xxxx"
}
我想知道是否有更优雅的方式来更新除foreach循环之外的特定属性(propToUpdate)。
由于
答案 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
}
}
)