MongoDB 3.6.2添加Collection Validator遇兼容性错误求助
解决MongoDB 3.6.2集合校验器的featureCompatibilityVersion兼容性问题
这个错误很常见——虽然你安装的是MongoDB 3.6.2,但你的数据库实例的**featureCompatibilityVersion(FCV)**还停留在旧版本(比如3.4),而3.6新增的集合校验器特性要求FCV必须设置为3.6才能启用。下面是一步步的解决方法:
第一步:检查当前的featureCompatibilityVersion值
打开Mongo Shell,连接到你的数据库实例,执行以下命令:db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )如果返回结果里的
featureCompatibilityVersion值是"3.4"或者更低,就说明需要升级。第二步:升级featureCompatibilityVersion到3.6
在Mongo Shell中执行升级命令:db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )注意:如果是分片集群,必须确保所有分片节点、配置服务器节点都已经升级到MongoDB 3.6版本后,再执行这个命令;单实例环境可以直接执行。
第三步:验证升级结果
再次执行第一步的检查命令,确认返回的featureCompatibilityVersion值已经变为"3.6"。第四步:重新尝试创建带校验器的集合
现在你就可以正常创建带有3.6特性的集合校验器了,举个示例:db.createCollection("users", { validator: { $jsonSchema: { bsonType: "object", required: ["name", "email"], properties: { name: { bsonType: "string", description: "必须是字符串且不能为空" }, email: { bsonType: "string", pattern: "^.+@.+\\..+$", description: "必须是有效的邮箱格式" } } } } })
额外提醒:
- 升级FCV后,MongoDB会启用3.6的所有特性,如果你之后需要降级到3.4版本,需要先将FCV改回
"3.4",再进行版本降级操作。 - 执行上述命令需要拥有数据库的管理员权限(比如root角色的用户)。
内容的提问来源于stack exchange,提问作者chandra shekar reddy dubba
相关产品推荐
相关产品推荐

