标签: python mongodb mongoengine
我试图在对象的状态之间转换:
User.objects(id=user_id, state=STATE_WAITING).update_one(set__state=STATE_FINISHED)
问题是,是否存在两个进程异步进行相同操作并成功的情况?
如果是这样,此操作可以是原子操作,因此下一个尝试更新用户(同时异步)的进程将失败,因为它的状态已经完成"已完成&#34 ;
答案 0 :(得分:2)
在单个文档上写入时,操作是原子操作。
In MongoDB, a write operation is atomic on the level of a single document, even if the operation modifies multiple embedded documents within a single document.
在多个非原子文档上书写时。
此外,可以使用两阶段提交来模拟多文档事务,详细信息为here。