考虑以下mongo文档
{
_id:...
param1:oldValue1
param2:oldValue2
}
假设我是否尝试使用以下查询进行两次并发部分更新:
db.collection.update( { _id:...} , { $set: { param1 : "newValue1" } }
db.collection.update( { _id:...} , { $set: { param2 : "newValue2" } }
在这些并发的部分更新后,我是否会在mongo中获得以下docuemnt状态:
{
_id:...
param1:newValue1
param2:newValue2
}
考虑到并发更新没有公共字段而没有并发修改问题,两个并发更新是否会使文档保留更新值?
答案 0 :(得分:1)
是的,无论两个更新的执行顺序如何,文档都会在您显示时结束。这是因为两个原子$set
操作以不同的字段为目标,并且未修改更新中未引用的任何字段。