考虑要求我们必须能够重新创建/查询曾经存在于特定集合中的文档的任何版本。所以我们开始:

{   docId: "A",
    v: 1,
    color: "red",
    locale: "USA"
}

进入全屏模式 退出全屏模式

如果我们需要将颜色设置为“蓝色”,而不是将“颜色”字段从“红色”更新为“蓝色”,我们必须创建一个新版本的文档,该版本现在具有完整的“当前”状态,并保留不知何故旧版本的文件。所以我们插入

{   docId: "A",
    v: 2,
    color: "blue",
    locale: "USA"
}

进入全屏模式 退出全屏模式

目标是保留每个对象的每个状态,但我们只响应“当前”或“最新”版本的查询,我们只需要能够进行审计(这将非常罕见,所以如果它很慢)。像我们在这个例子中所做的那样保持每个版本是解决这个问题的最佳模式/方法吗?

Logo

MongoDB社区为您提供最前沿的新闻资讯和知识内容

更多推荐