文档和模式版本控制
您的模式可能需要随着时间的推移而改变,以适应不断变化的技术需求。当您的模式发生变化时,您可以使用模式设计模式来保留原始文档结构。通过保留文档和模式的旧版本,您避免了性能密集型的模式迁移和停机。
用例
当您的数据需求发生变化且希望保持历史数据以原始形式时,请使用版本化模式。当您的应用程序满足以下任一条件时,版本化模式最有用:
迁移期间停机不可选。
更新文档到新模式可能需要数小时、数天或数周才能完成。
更新文档到新模式不是必需的。
版本化模式帮助您决定数据迁移的方式,并提供相对于表格数据库的更多灵活性。
考虑以下特定应用程序用例以进行版本化模式
一家保险公司允许客户修改其保单以保障额外物品。当客户更改其保单时,保险公司会记录保单随时间的变化。公司使用
文档版本化
模式通过将每个更新存储在单独的文档中来跟踪保单修订。历史数据存储在单独的集合中,不会影响当前数据上的查询。一家公司存储客户联系信息。在原始模式中,各种联系方法(如
homePhone
、cellPhone
和email
)存储在单独的字段中。随着时间的推移,拥有homePhone
号码的客户越来越少,因此公司修改了模式,将联系信息移动到通用的contacts
文档中,该文档具有可变的子字段。模式变更后,公司实施了模式版本化
模式,并添加了一个schemaVersion
字段,以告诉应用程序如何查询每个文档。
任务
要了解如何记录文档和模式变更的历史,请参阅以下页面