使用--nsFrom和--nsTo从未知数据库名称还原到其他数据库

时间:2018-08-30 11:08:37

标签: mongodb mongorestore

--db被弃用以来,我一直无法将具有未知数据库名称的存档恢复到具有已知名称的现有数据库。

到目前为止,这是我的尝试,但是没有用,因为我需要知道源数据库名称: mongorestore --archive=/path/to/my.archive --nsFrom '[UNKNOWN DATABASE NAME].*' --nsTo '[KNOWN DATABASE NAME].*' --drop

如果我使用--nsFrom '*.*' --nsTo '[KNOWN DATABASE NAME].*',则会收到一条错误消息,指出通配符的数量必须匹配。

1 个答案:

答案 0 :(得分:1)

编辑:“有效”下面的原始答案,但将恢复带有原始未知数据库名称的集合。

如果要在不带前缀数据库名称的情况下还原集合,请使用$方法。

mongorestore --archive=/path/to/my.archive --nsFrom '$prefix$.$suffix$' --nsTo '[KNOWN DATABASE NAME].$suffix$' --drop

原始答案:

-nsFrom和--nsTo参数中的星号数量必须匹配。如果您不知道用于创建档案的名称空间的名称,只需使用'*'即可映射到所有名称空间,例如:

mongorestore --archive=/path/to/my.archive --nsFrom '*' --nsTo '[KNOWN DATABASE NAME].*' --drop