标签: mongodb
重命名代码应放在何处?在生产代码中进行条件检查?以及如果出现问题怎么回滚?
我已经知道db.collection.renameCollection()方法,但是以这种方式重命名集合将防止向后兼容,并且根据文档,这将中断当前查询。
db.collection.renameCollection()
人们还可以考虑使用db.collection.copyTo(),它在操作过程中会阻塞数据库,为当前应用程序实例提供向后兼容性。并部署一个对两个集合执行操作的中间版本。但是,仍然存在这样的问题:当旧实例正在运行并且尚未更新到中间版本时,新集合已过期。
db.collection.copyTo()