【发布时间】:2019-03-11 03:44:55
【问题描述】:
这是json对象
{
"account_id":"1",
"sections":[ {
"section_name":"abc",
"labels": [{
"name": "label1",
"value": "value1"
},
{
"name": "label2",
"value": "value2"
}]
},
{
"section_name":"def",
"labels": [{
"name": "label3",
"value": "value3"
}]
}]
}
在这个 json 对象中,我想在 def 部分将 label3 的值从 value3 更改为 value4。有不同的帐户,但我在这里只列出了一个 json 对象。
我使用了下面的代码,但它对我不起作用。这里我传递了节名(section)、标签名(label)和标签值(value)。
let query = {
account_id: event.accountId.toString(),
sections: {
section_name: section,
labels: {
label_name: label
}
}
};
return using(connectDatabase(), db => {
return db.collection(TABLE_NAME).updateOne(query, { $set: {
'sections.$.labels.$.value': value } });
}).then(
result => {
cb(null, responseObj(result, 200));
},
err => {
cb(responseObj(err, 500));
}
);
有人可以帮助我吗?提前致谢
【问题讨论】:
-
运行该查询时是否有任何错误?
-
它没有在数据库中更新。
-
使用arrayFilters发布答案,希望它对你有用