【发布时间】:2011-06-29 02:41:06
【问题描述】:
在我开始之前,我想为 我的问题的通用类型 - 我相信一整本书 可以写在那个特定的主题上。
假设您有一个包含多个文档架构的大型文档数据库 以及每个模式的数百万个文档。 在应用程序的生命周期中,需要更改架构 (和内容)已经存储的文档频繁。
这样的改变可能是
- 添加新字段
- 重新计算字段值(将 Gross 拆分为 Net 和 VAT)
- 删除字段
- 将字段移动到嵌入文档中
在我上一个使用 SQL DB 的项目中,我们遇到了一些非常相似的挑战 这导致一些重要的离线时间(对于 24/7 产品),当 更改变得非常剧烈,因为 SQL DB 通常在表上执行 LOCK 时 发生变化。我想避免这种情况。
另一个相关的问题是如何从内部处理架构更改 使用的编程语言环境。通常架构更改发生在 更改类定义(我将使用 Mongoid 一个 OR-Mapper MongoDB 和 Ruby)。如何处理旧版本的文档 更加符合我最新的类定义。
【问题讨论】: