文档菜单
文档首页
/
MongoDB 手册
/ /

文档和模式版本控制

本页内容

  • 用例
  • 任务
  • 了解更多

您的模式可能需要随着时间的推移而改变,以适应不断变化的技术需求。当您的模式发生变化时,您可以使用模式设计模式来保留原始文档结构。通过保留文档和模式的旧版本,您避免了性能密集型的模式迁移和停机。

当您的数据需求发生变化且希望保持历史数据以原始形式时,请使用版本化模式。当您的应用程序满足以下任一条件时,版本化模式最有用:

  • 迁移期间停机不可选。

  • 更新文档到新模式可能需要数小时、数天或数周才能完成。

  • 更新文档到新模式不是必需的。

版本化模式帮助您决定数据迁移的方式,并提供相对于表格数据库的更多灵活性。

考虑以下特定应用程序用例以进行版本化模式

  • 一家保险公司允许客户修改其保单以保障额外物品。当客户更改其保单时,保险公司会记录保单随时间的变化。公司使用文档版本化模式通过将每个更新存储在单独的文档中来跟踪保单修订。历史数据存储在单独的集合中,不会影响当前数据上的查询。

  • 一家公司存储客户联系信息。在原始模式中,各种联系方法(如homePhonecellPhoneemail)存储在单独的字段中。随着时间的推移,拥有homePhone号码的客户越来越少,因此公司修改了模式,将联系信息移动到通用的contacts文档中,该文档具有可变的子字段。模式变更后,公司实施了模式版本化模式,并添加了一个schemaVersion字段,以告诉应用程序如何查询每个文档。

要了解如何记录文档和模式变更的历史,请参阅以下页面

  • 记录文档版本历史

  • 维护不同的模式版本

返回

继承模式