处理Mongo Collection中的多个文档版本

时间:2016-05-10 08:39:43

标签: mongodb

{你好。我对标题并不完全满意,Mods请在必要时帮助修改}

我们正试图想出在我们的项目中在后端实现mongoDB的方法。我们必须解决以下提出的一些问题。该领域专家的一些意见非常有帮助。

  1. 根据早期开发更改,删除/添加全新字段到文档中 - >如何最好地适应这种情况?
  2. 作为一个例子,假设我的集合包含大约1000条记录,并且有一个包含“地址”数据的记录。由于操作上的变化,我们需要在“地址”字段中添加(或替换)“街道”,“POBOX”等数组,并用一定的默认值填充它们,如何才能最好地满足这一要求?

    1. 特定情况,其中并非我们运行的所有设备都需要更新到最新版本。这意味着在数据库中添加的新“字段”实际上与运行旧版本应用程序的设备无关。 - >如何最好地处理这种情况?
    2. 作为一个例子,让我们假设一些设备运行早期版本的应用程序,它只查找“地址”作为字段。某些更新到最新应用需求的设备需要参考“街道”和“POBox”字段而不是地址。从Mongo的角度来看,如何才能最好地处理这个问题?

1 个答案:

答案 0 :(得分:0)

用简单的话说:

随着开发的进展,可以根据需要更改文档形状。

依赖于更改类型,结构更新可以通过一个更新语句来执行 或者有时需要使用聚合框架并将结果保存在新集合中。

为了与正在使用的设备上的应用版本向后兼容 - 文档可以包含两个版本的字段,因此较旧版本的应用程序可以与较新的架构一起使用。

这可能会导致其他问题,如果文档会更新怎么办?这意味着应用程序可以设置为从较新的模式读取,但不能写入(如果可能)。

如果有可能使用webApi与app进行通信,然后使用mongo - 您可以动态进行所有迁移,因为api会知道更改......

欢迎任何评论!