我有一个包含 2 个数组的文档,我想将一个元素从一个数组移动到另一个数组,我在控制台上尝试了这个,它可以工作:
db.examplecol.update({_id: ObjectId("5056b4b2b9f53a21385076c5")} , {'$pull':{setA:3}, '$push': {setB:3}})
但是我还没有看到在单个命令中进行 2 次更新的示例。我的问题是这是否是原子操作?如果在此操作过程中出现问题,我是否有可能因为它被拉而不被推而“丢失”我的元素?
基于MongoDB 的 Atomic Operations文档,并且由于您的操作是在单个文档上,因此该操作应该是原子的。您应该确保您正在使用日志,因此如果在更新的中途断电,那么 MongoDB 将恢复到更新之前的已知良好状态。