我最近将 mongodb 版本从 4.2 更新到了 4.4。似乎它有一些突破性的变化。
现在该服务根本没有运行,并向我显示此错误。
我知道降级不是一种选择。但是有没有办法解决这个问题?
提前致谢
Nic*_*art 15
在使用 mongodb 4.4 之前,您首先需要将数据库升级到 4.2 版本。
从与迁移相关的官方指南中并不直接明显看出,但 mongodb 不会自动更新数据库版本以匹配 mongodb 程序的版本。
实际上它会尝试与创建数据库时使用的版本保持兼容性。您需要执行一项手动操作来告诉 mongodb 更新数据库的格式。
Mongodb 版本倾向于理解以前版本使用的格式,但不能理解旧版本(因此 mongo 4.4 可以使用 4.2 版本中的数据库,但不能使用更早版本)。
因此,解决方案是首先启动一个与数据库版本兼容的 mongodb 实例(在您的例子中为 4.2),并使用mongo客户端发出以下命令:
db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
Run Code Online (Sandbox Code Playgroud)
这实际上会要求 mongodb 迁移数据库的格式以使用版本 4.2。
现在,您可以使用 mongoDB 4.4 版本,但它将以与 4.2 版本兼容的模式使用您的数据库。
您可以直接发出下一个命令来立即应用迁移。
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
Run Code Online (Sandbox Code Playgroud)
MongoDB 的每个版本都需要这些操作。因此,如果您碰巧有一个落后了多个版本的数据库,则必须通过 MongoDB 的每个版本手动更新它。