mongodb一次导入多个集合

时间:2017-01-28 20:24:21

标签: mongodb mongoimport mongoexport

我正在使用此命令

  

mongoimport --db databasename

导入我使用mongoexport导出的数据库。 数据库在mongoimport文档中有超过100个集合,您需要指定集合名称和json文件。 如何在不必为每个集合键入命令的情况下一次导入所有集合

4 个答案:

答案 0 :(得分:3)

如果转储文件位于.json中,则可以使用该脚本进行导入

ls *.json | sed 's/.metadata.json//' | while read col; do mongoimport -d db_name -c $col < $col.metadata.json; done

如果转储文件位于.json.gz中,则可以使用该脚本进行导入

ls *.gz | sed 's/.metadata.json.gz//' | while read col; do mongoimport -d db_name --gzip -c $col < $col.metadata.json.gz; done

答案 1 :(得分:2)

根据文件

  

2.6版中的新功能:如果未指定--collection,则为mongoimport   从输入文件名中获取集合名称。 MongoDB省略了   如果输入文件具有,则从集合名称扩展文件   延期。

所以似乎应该一次导入一个集合。所以除非你写一个shell脚本来做,否则我找不到方法。

mongodump和mongorestore更好地进行完全数据库转储并立即恢复它,因为同一文档的其他部分说明

  

警告

     

避免使用mongoimport和mongoexport进行完整的实例制作   备份。它们不能可靠地保留所有丰富的BSON数据类型,   因为JSON只能表示支持的类型的子集   BSON。使用MongoDB Backup中描述的mongodump和mongorestore   这种功能的方法。

答案 2 :(得分:1)

很难找到有关导入多个集合的文档。 还原在搜索数据库时,它并不总是直观的关键字,但是当您要从备份中还原数据库时,这就是您想要做的。如果您已经有mongodump导出的集合转储,则应该可以使用mongorestore

这是您真正需要运行的一切:

mongorestore --db db_name ./db_dumpfiles/

答案 3 :(得分:1)

一个简单的命令

mongorestore --db folder_name ./folder_name/