我有一个包含两个数组的文档,我想将一个元素从一个数组移动到另一个数组,我在控制台上尝试了一下,它起作用了:
db.examplecol.update({_id: ObjectId("5056b4b2b9f53a21385076c5")} , {'$pull':{setA:3}, '$push': {setB:3}})但我还没有见过一个在一个命令中进行两次更新的例子。我的问题是,这是不是一个原子操作?如果在此操作过程中出现错误,我是否有“丢失”元素的风险,因为它已被拉出但未被推送?
发布于 2012-09-17 21:48:37
基于MongoDB's Atomic Operations文档,由于您的操作是在单个文档上进行的,因此该操作应该是原子的。您应该确保您使用的是日志记录,因此,如果在更新过程中拉出电源,那么MongoDB将在更新之前恢复到已知的良好状态。
https://stackoverflow.com/questions/12458798
复制相似问题