我正在使用此命令
mongoimport --db databasename
导入我使用mongoexport导出的数据库。 数据库在mongoimport文档中有超过100个集合,您需要指定集合名称和json文件。 如何在不必为每个集合键入命令的情况下一次导入所有集合
答案 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/