查找文档并使用其内容在一个原子操作中更新它

时间:2017-01-25 00:38:01

标签: mongodb mongodb-query atomicity

我必须对MongoDB中的一组文档执行某些多步操作。例如,我的文档每个都有两个子文档,如:

{
    "history": [

    ],
    "preview": {
        "title": "This is the preview title",
        "subtitle": "This is a new field"
    },
    "live": {
        "title": "This is the live title"
    }
}

我必须找到文档,在预览和实时状态之间进行差异,将差异推入历史记录并将预览复制到实时。如何在MongoDB中以原子方式执行这样的多步操作,以便数据在运行中不会改变?

我唯一能想到的是使用findAndModify在文档上设置一个标志,以防止更新,然后通过最终更新调用删除标志。任何人都可以提出更好的解决方案吗?

我应该指出,有时候,我需要一次性发布多个项目,因此对我来说性能很重要。

0 个答案:

没有答案