mongorestore 的 nsInclude 参数没有效果

Jef*_*f R 1 database-backups mongodb mongorestore

我一直在仔细研究 mongorestore 文档,试图找出为什么我的 mongorestore 命令正在恢复我的集合中的所有内容,尽管包括--nsInclude

这是我尝试过的命令(我也尝试过参数顺序,这似乎并不重要,正如预期的那样)。

mongorestore --nsInclude=myns.mycollection --uri mongodb://user:pass@mongo/myns?authSource=admin --gzip --drop --preserveUUID --archive="/data/backups/myns/myns.bson.gz"
Run Code Online (Sandbox Code Playgroud)

(如果重要的话)我创建了这样的文件:

mongodump --uri mongodb://user:pass@mongo/myns?authSource=admin --gzip --archive="/data/backups/myns/myns.bson.gz"
Run Code Online (Sandbox Code Playgroud)

有趣的是,我的程序输出包含以下语句:

The --db and --collection flags are deprecated for this use-case; please use --nsInclude instead, i.e. with --nsInclude=${DATABASE}.${COLLECTION}
Run Code Online (Sandbox Code Playgroud)

(尽管 --db 和 --collection 不在命令中)

网上有很多 mongorestore 与 --nsInclude 配合良好的示例。这肯定不是一个错误,是吗?

完整的 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.

Run Code Online (Sandbox Code Playgroud)

Jef*_*f R 7

经过更多实验后,似乎我的连接字符串中包含数据库名称,这就是在内部隐式设置“--db”选项。通过还添加 --nsInclude 参数,我只是重新指定已在恢复范围内的集合。

如果我删除数据库名称,nsInclude 开始正常工作:

mongorestore --uri mongodb://user:pass@mongo/?authSource=admin --gzip --drop --preserveUUID --archive="/data/backups/myns/myns.bson.gz" --nsInclude=myns.mycollection
Run Code Online (Sandbox Code Playgroud)