如何更新mongo对象

时间:2019-05-22 05:57:01

标签: mongodb mongodb-query

我需要更新我的mongo文档,以下是我的模式

{ "_id" : 7742, "current_count" : { "abc" : 6 } }

并且需要更新我不知道键的current_count对象,并且如果出现相同的键,则需要替换值,如下所示。

{ "_id" : 7742, "current_count" : { "abc" : 6 ,"xyz":10} }

如果遇到"abc",只需替换其值,

 { "_id" : 7742, "current_count" : { "abc" : 456 ,"xyz":10} }

1 个答案:

答案 0 :(得分:2)

您只需要遍历作为有效负载获取的键,并需要创建动态键值对并将其设置为$set运算符

const data = {
  abc: 456,
  xyz: 10
}
const object = {}

for (var key in data) {
  object[`current_count.${key}`] = data[key]
}

输出为

current_count.abc: 456
current_count.xyz: 10

然后将其放在您的查询中

const query = { "_id" : 7742 };
const update = { "$set": object };

await Model.findOneAndUpdate(query, update)