MongoDB 6.0.8与Node.js 18.17.0适配的Node驱动版本咨询
问题原因
你遇到的Unsupported OP_QUERY command: listCollections错误,核心原因是db-migrate 0.11.14版本过旧,其依赖的MongoDB客户端逻辑仍在使用已被MongoDB 6.0移除的旧指令OP_QUERY。MongoDB 6.0彻底淘汰了OP_QUERY这类 legacy 指令,要求客户端使用OP_MSG执行操作,而旧版db-migrate(或其配套的mongodb插件)未适配该变化。
适配版本方案
结合你的当前配置(MongoDB 6.0.8、Node.js 18.17.0),以下是两种可行的适配组合:
方案1:升级db-migrate的MongoDB插件(推荐)
保留db-migrate 0.11.14,升级配套的db-migrate-mongodb插件到支持MongoDB 6.0的版本:
- 安装
db-migrate-mongodb@5.x:该版本兼容你当前使用的mongodb@6.0.0,且适配MongoDB 6.0的OP_MSG指令要求。 - 执行命令:
npm uninstall db-migrate-mongodb mongodb npm install db-migrate-mongodb@5.x mongodb@6.x --save-dev
方案2:降级MongoDB驱动(备选)
如果暂时不想升级插件,可以降级MongoDB驱动到5.x版本,同时搭配db-migrate-mongodb@4.x:
- MongoDB驱动5.x仍支持MongoDB 6.0,且
db-migrate-mongodb@4.x能适配该驱动版本,避免OP_QUERY报错。 - 执行命令:
npm uninstall db-migrate-mongodb mongodb npm install db-migrate-mongodb@4.x mongodb@5.x --save-dev
额外建议
如果从长期维护考虑,建议直接升级db-migrate到最新的0.12.x版本,它对MongoDB 6.0+和新驱动的支持更完善,兼容性问题更少。
内容的提问来源于stack exchange,提问作者murat
相关产品推荐
相关产品推荐

