MongoDB架构迁移/升级有哪些选项?
我们(我的同事和我)有一个相当大(约1亿条记录)的MongoDB集合.此集合被映射(ORM'd)到已经过许多不同迭代的Scala lift-mongodb对象.我们在那里有各种代码来处理丢失的字段,重命名,删除,迁移等.
尽管整个"无模式"的东西可以很好和灵活,但在这种情况下,随着我们的对象不断发展,它会导致大量代码混乱.继续沿着这条"灵活对象"的道路前进是根本不可持续的.
你们是如何使用Scala在MongoDB中实现模式迁移/升级的?这个框架是否存在?我知道Foursquare使用Scala和MongoDB以及Rogue(他们自己的查询DSL)...有谁知道他们如何处理他们的迁移?
谢谢.
也许这有点帮助,这就是Guardian.co.uk如何处理这个:
http://qconlondon.com/dl/qcon-london-2011/slides/MatthewWall_WhyIChoseMongoDBForGuardianCoUk.pdf
架构升级
这可以通过以下方式减轻:
为每个文档添加"版本"键
每次应用程序修改文档时更新版本
如果需要,使用MapReduce功能强制迁移旧版本的文档