参考 > 发行说明 > MongoDB 3.4发布说明 > 将MongoDB 3.4降级到3.2
在本页面
在尝试任何降级之前,请熟悉本文档的内容。
一旦升级到3.4,就不能降级到3.2.7或更早的版本。您只能降级到3.2.8或更高版本。
可选,但推荐。 创建数据库的备份。
要降级,必须删除所有与3.2或更早版本不兼容的3.4功能,如下所述。只有featureCompatibilityVersion
将设置为时,才需要执行这些步骤
"3.4"
。
有关特定于独立群集,副本集群集或分片群集的说明,请参阅:
降级featureCompatibilityVersion
到"3.2"
。
此命令必须执行对内部系统集合的写入。如果由于某种原因该命令未成功完成,则可以安全地在目标上重试该命令,因为该操作是幂等的。
如果定义了任何视图,请先删除视图,然后再将MongoDB 3.4降级到3.2。
要查找视图,可以在mongo
外壳程序中运行以下命令:
在每个包含视图的数据库中,删除system.views
集合以删除该数据库中的所有视图。
如果使用访问控制运行,则必须具有删除system.views
数据库集合的特权
。请参阅
创建角色以删除system.views跨数据库集合。
如果您为集合或索引定义了任何非“简单”排序规则,请先删除该集合或索引,然后再将MongoDB 3.4降级至3.2。
要查找具有排序规则规范的集合,可以在mongo
外壳程序中运行以下命令:
您可以在没有排序规则规范的情况下将集合的内容迁移到新集合(一种方法是通过聚合管道阶段$out
)。
要查找具有排序规则规范的索引,可以在mongo
shell中运行以下命令:
使用整理规范删除索引。降级后,重新创建删除的索引。
转换任何十进制类型的数据。在3.4之前的MongoDB版本中,对包含十进制类型的文档的操作可能会失败。有关某些可能的转换选项,请参见 模型货币数据。
要检测十进制的存在,可以db.collection.validate(true)
对可能包含十进制数据的集合运行
。
db.collection.validate(true)
在十进制数据报告,只有当featureCompatibilityVersion
是
"3.2"
。
如果您有索引(即在MongoDB 3.4中创建的索引的默认版本if ),请
在降级MongoDB之前重新创建集合上的所有索引。v: 2
featureCompatibilityVersion: "3.4"
reindex the collection
v: 1
要使用查找索引,可以在shell中运行以下命令
:v: 2
mongo