我必须对MongoDB中的一组文档执行某些多步操作。例如,我的文档每个都有两个子文档,如:
{
"history": [
],
"preview": {
"title": "This is the preview title",
"subtitle": "This is a new field"
},
"live": {
"title": "This is the live title"
}
}
我必须找到文档,在预览和实时状态之间进行差异,将差异推入历史记录并将预览复制到实时。如何在MongoDB中以原子方式执行这样的多步操作,以便数据在运行中不会改变?
我唯一能想到的是使用findAndModify在文档上设置一个标志,以防止更新,然后通过最终更新调用删除标志。任何人都可以提出更好的解决方案吗?
我应该指出,有时候,我需要一次性发布多个项目,因此对我来说性能很重要。