You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mongorestore的--nsInclude参数不生效,仍还原备份内全部集合

问题根因

你遇到的现象不是工具Bug,是两个隐含逻辑共同导致的:

  1. 你观察到的--db弃用警告并非误报:你在连接URI末尾指定了/myns数据库路径,这在mongorestore中等价于隐式传递了--db myns参数,因此触发了弃用提示,和你有没有显式写--db参数无关。
  2. --nsInclude过滤失效的核心原因:当mongorestore检测到显式/隐式的--db参数时,全库还原的优先级会高于命名空间过滤规则,直接覆盖了你设置的单集合过滤逻辑,最终导致备份内所有集合都被还原。

解决方法

调整你的mongorestore命令,移除URI中末尾的数据库名即可,修改后的命令如下:

mongorestore --nsInclude=myns.mycollection --uri mongodb://user:pass@mongo/?authSource=admin --gzip --drop --preserveUUID --archive="/data/backups/myns/myns.bson.gz"

修改后mongorestore不会再隐式触发--db逻辑,--nsInclude的过滤规则会正常生效,仅还原你指定的myns.mycollection集合。

补充说明

如果需要将备份集合恢复到其他目标库,可以搭配--nsFrom和--nsTo参数做命名空间映射,无需修改备份文件。建议确保mongorestore工具版本和MongoDB服务端版本差不超过1个小版本,避免出现兼容问题。


内容的提问来源于stack exchange,提问作者Jeff R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:18:03