mongodb使用一个命令恢复多个集合

时间:2017-12-20 14:38:16

标签: mongodb

如何在mongodb中一次恢复多个集合。

我试过了

mongorestore -c Role -c UserAccount -c Permission -d movie-app dump/ 

我收到错误file dump is a directory, not a bson file

我可以一次恢复单个集合,我必须指定bson文件,如

  mongorestore -c UserAccount -d movie-app dump/movie-app/UserAccount.bson 

我需要知道如何 使用一个命令恢复多个集合。

1 个答案:

答案 0 :(得分:1)

在v3.4中,您可以使用--nsExclude和/或--nsInclude选项创建--collection选项功能的超集

例如:

// only restore documents in the transactions database 
// and exclude collections whose name ends with "_dev"
mongorestore --nsInclude 'transactions.*' --nsExclude 'transactions.*_dev' dump/

the docs中的更多详情。

更新以回复此评论:

  嗯,但是我要恢复的集合名称与使用外卡没有任何类似的模式..

如果您使用通配符模式隔离了要恢复的集合名称,那么您可以使用--nsExclude。如果没有,那么mongorestore无法在单个调用中执行您想要的操作,因此您可以在批处理或shell脚本中的循环中调用mongorestore,为每个集合调用mongorestore一次你要恢复的名字。