mongodb - mongorestore 的 nsInclude 参数无效
问题描述
尽管包括_--nsInclude
这是我尝试过的命令(我也尝试过参数顺序,这似乎并不重要,正如预期的那样)。
mongorestore --nsInclude=myns.mycollection --uri mongodb://user:pass@mongo/myns?authSource=admin --gzip --drop --preserveUUID --archive="/data/backups/myns/myns.bson.gz"
(如果重要的话)我创建了这样的文件:
mongodump --uri mongodb://user:pass@mongo/myns?authSource=admin --gzip --archive="/data/backups/myns/myns.bson.gz"
有趣的是,我的程序输出包括以下语句:
The --db and --collection flags are deprecated for this use-case; please use --nsInclude instead, i.e. with --nsInclude=${DATABASE}.${COLLECTION}
(即使 --db 和 --collection 不在命令中)
网上有很多关于 mongorestore 与 --nsInclude 配合得很好的例子。这肯定不是bug吧?
完整的 mongorestore 输出:
mongodump --uri mongodb://user:pass@mongo/myns?authSource=admin --gzip --archive="/data/backups/myns/myns.bson.gz"
The --db and --collection flags are deprecated for this use-case; please use --nsInclude instead, i.e. with --nsInclude=${DATABASE}.${COLLECTION}
preparing collections to restore from
reading metadata for myns.odwhoms from archive '/data/backups/myns/myns.bson.gz'
restoring myns.odwhoms from archive '/data/backups/myns/myns.bson.gz'
no indexes to restore
finished restoring myns.odwhoms (5 documents, 0 failures)
reading metadata for myns.audits from archive '/data/backups/myns/myns.bson.gz'
restoring myns.audits from archive '/data/backups/myns/myns.bson.gz'
no indexes to restore
finished restoring myns.audits (44 documents, 0 failures)
reading metadata for myns.odwhats from archive '/data/backups/myns/myns.bson.gz'
restoring myns.odwhats from archive '/data/backups/myns/myns.bson.gz'
no indexes to restore
finished restoring myns.odwhats (5 documents, 0 failures)
54 document(s) restored successfully. 0 document(s) failed to restore.
解决方案
经过更多的试验,似乎我的连接字符串中包含数据库名称是在内部隐式设置“--db”选项的内容。通过添加 --nsInclude 参数,我只是重新指定了一个已经在恢复范围内的集合。
如果我删除数据库名称,nsInclude 开始正常工作:
mongorestore --uri mongodb://user:pass@mongo/?authSource=admin --gzip --drop --preserveUUID --archive="/data/backups/myns/myns.bson.gz" --nsInclude=myns.mycollection
推荐阅读
- android - 使用expo在android设备中打开反应本机应用程序时出错
- python - 根据给定条件将新列添加到现有数据框列
- django - django设置默认时区
- reactjs - 已解决:我试图在反应中将更新数据从父级传递给子级,但它没有在子组件的功能中更新
- database - Mongoose:TypeError:模式路径`guildId.type`的值无效,得到值“未定义”
- javascript - 仅用于数据结构和数据库的前端(React)解决方案
- python - 如何转换宽数据框以绘制特定数据
- regex - 正则表达式在文本文件中突出显示高于 85% 红色的百分位数
- flyway - 如何创建脚本或 Flyway 可以配置为每次使用 SQL 回调调用它?
- spartacus-storefront - 斯巴达克斯 2.1.9 在 2.0.0 之后的购物车效果问题