我有一个看起来像这样的 mongo 文档:
{
"_id" : '4fb2a4809ad7324ccba1f6b8',
"events" : {
"4fb2a4809ad7324ccba1f6b9" : {a:{z:1},b:{z:2},c:{z:3}},
"4fb2a4809ad7324ccba1f610" : {a:{z:1},b:{z:2},c:{z:3}}
}
}
然后我的服务器收到一个更新对象。
update = {
_id = '4fb2a4809ad7324ccba1f6b8',
event_id: '4fb2a4809ad7324ccba1f610',
changed_data: {a:{b:3}}
}
ab = 3 已创建或更改。这并不意味着 a = {b:3} 因此我不想覆盖已经存储在文档中的现有 az = 1 。
我将如何为这些更改编写原子更新?我无法弄清楚的主要事情是如何将变量传递到命令中以定位子对象。(使用 node-mongodb-native)
谢谢你的帮助!
更新后的文档如下所示:
{
"_id" : '4fb2a4809ad7324ccba1f6b8',
"events" : {
"4fb2a4809ad7324ccba1f6b9" : {a:{z:1},b:{z:2},c:{z:3}},
"4fb2a4809ad7324ccba1f610" : {a:{z:1, b:3},b:{z:2},c:{z:3}}
}
}