mongodb 一次导入多个集合
mongodb import multiple collections at once
我正在使用这个命令
mongoimport --db databasename
导入我使用 mongoexport 导出的数据库。
该数据库在 mongoimport 文档中有超过 100 个集合,您需要指定集合名称和 json 文件。
如何一次导入所有集合而不必为每个集合键入命令
根据文档
New in version 2.6: If you do not specify --collection, mongoimport
takes the collection name from the input filename. MongoDB omits the
extension of the file from the collection name, if the input file has
an extension.
所以它似乎应该一次导入一个集合。所以除非你写一个 shell 脚本来做,否则我看不出有什么办法。
mongodump 和 mongorestore 对于获取完整的数据库转储并立即恢复它要好得多,正如同一文档的另一部分所说
Warning
Avoid using mongoimport and mongoexport for full instance production
backups. They do not reliably preserve all rich BSON data types,
because JSON can only represent a subset of the types supported by
BSON. Use mongodump and mongorestore as described in MongoDB Backup
Methods for this kind of functionality.
如果转储文件在 .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
令人惊讶的是,很难找到有关导入多个集合的文档。 恢复 数据库在搜索时并不总是直观的关键字,但当您要从备份恢复数据库时,这就是您想要做的事情。如果您已经有了使用 mongodump
导出的集合转储,您应该能够使用 mongorestore
.
这就是您真正需要的 运行:
mongorestore --db db_name ./db_dumpfiles/
一个简单的命令
mongorestore --db folder_name ./folder_name/
我正在使用这个命令
mongoimport --db databasename
导入我使用 mongoexport 导出的数据库。 该数据库在 mongoimport 文档中有超过 100 个集合,您需要指定集合名称和 json 文件。 如何一次导入所有集合而不必为每个集合键入命令
根据文档
New in version 2.6: If you do not specify --collection, mongoimport takes the collection name from the input filename. MongoDB omits the extension of the file from the collection name, if the input file has an extension.
所以它似乎应该一次导入一个集合。所以除非你写一个 shell 脚本来做,否则我看不出有什么办法。
mongodump 和 mongorestore 对于获取完整的数据库转储并立即恢复它要好得多,正如同一文档的另一部分所说
Warning
Avoid using mongoimport and mongoexport for full instance production backups. They do not reliably preserve all rich BSON data types, because JSON can only represent a subset of the types supported by BSON. Use mongodump and mongorestore as described in MongoDB Backup Methods for this kind of functionality.
如果转储文件在 .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
令人惊讶的是,很难找到有关导入多个集合的文档。 恢复 数据库在搜索时并不总是直观的关键字,但当您要从备份恢复数据库时,这就是您想要做的事情。如果您已经有了使用 mongodump
导出的集合转储,您应该能够使用 mongorestore
.
这就是您真正需要的 运行:
mongorestore --db db_name ./db_dumpfiles/
一个简单的命令
mongorestore --db folder_name ./folder_name/