我是mongodb
的新手,并且想要知道如何将一个json
文件从一台服务器导入到另一台服务器。我尝试了下面的命令mongoimport -d test -c bik check.json
,它对我来说工作正常。现在我想知道什么时候有多个json
文件,我如何一次性导入所有这些文件。我找不到任何相关的文件,在这里写这是不可能的。请帮助我这是可能的和如何使用mongoimport导入超过1个json文件
回答
你总是可以写一些shell脚本。
colls=(mycoll1 mycoll2 mycoll5)
for c in ${colls[@]}
do
mongoimport -d mydb -c $c.json
done
我想出了一个更优雅的方式来自动导入所有集合:
ls -1 *.json | sed 's/.json$//' | while read col; do
mongoimport -d db_name -c $col < $col.json;
done
我希望这是有帮助的。
就像一个魅力!我其实需要导入tsv文件,所以我不得不包含'--headerline'和'--type tsv'非常简单。谢谢 – agarcian 2014-12-10 18:13:17
Windows批处理版本:
@echo off
for %%f in (*.json) do (
"mongoimport.exe" --jsonArray --db databasename --collection collectioname --file %%~nf.json
)
谢谢托米。我不得不忽略--jsonArray,因为我有多个json文件没有被封装在[]中 – ankit9j 2017-07-30 08:49:41
这在MAC OS X
find . -regex '.*/[^/]*.json' | xargs -L 1 mongoimport --db DB_NAME -u USER_NAME -p PASSWORD --collection COLLECTION_NAME --file
为我工作窗口 bat文件。如果你在文件夹中有一个json文件列表,这将会更好。和集合名称相匹配的文件
@echo off
for %%f in (*.json) do (
"mongoimport.exe" --db databasename --collection %%~nf --drop --file %%f
)
pause
名称您可以通过这种方式也做到这一点:
for filename in *; do mongoimport --db <Database> --collection <Collection Name> --file $filename; done
我将展示如何导入有效地仅使用Linux的终端众多的收藏品(它也适用于Mac)。
您必须将所有json文件放在同一个文件夹中,文件名应该是将要导入到数据库的集合。
因此,让我们开始,打开包含您的json文件的文件夹。更换<DATABASE>
到你的数据库名称,然后执行以下行:
for collection in $(ls | cut -d'.' -f1); do mongoimport --db <DATABASE> --collection ${collection} --file ${collection}.json; done
但到底是怎么回事呢?
首先,您必须记住括号会先执行。在这种情况下,它会创建一个获取每个文件名称的所有文件的列表(删除它的扩展名)。
其次,所有的列表将被添加到一个循环“为”局部变量称为集合(这个变量的名称可以是任何你想要的)
第三,“做”执行导入线(*)
最后“完成”,完成循环。导入行由需要数据库名“--db”,集合名“--collection”和文件名“--file”的“mongoimport”组成。这些要求已经填写了变量“$收集”创建的“for”的东西
我希望帮助别人!祝你好运的家伙:)
- 1. 如何使用mongoimport将大型json文件导入mongodb?
- 2. 使用mongoimport导入CSV文件可以导入NULL吗?
- 3. mongoimport未能导入JSON数据
- 4. 意外的标识符,同时通过mongoimport命令导入json文件到mongodb
- 5. 无法使用mongoimport插入JSON
- 6. MongoDB批量导入从Windows文件夹使用mongoimport
- 7. 使用mongoimport将日期(ISODate)导入MongoDB
- 8. 如何导入JSON文件包含超过200个文件到MongoDB的
- 9. MongoImport:错误插入文件
- 10. 类文件中的入口点 - 超过1个入口点
- 11. 无法查看超过1个文件
- 12. 如何在PHP中使用ftp_get下载超过1个文件
- 13. 使用mongoexport/mongoimport以csv格式导出嵌入文档
- 14. 用typescript导入json文件
- 15. 在Zend的超过1个导航2.3
- 16. 导入JSON文件
- 17. 导入JSON文件
- 18. 的Linux移除文件夹中超过1年且超过3个文件
- 19. Twitter JSON到Google Spreadsheet API - 1.导入和阅读JSON文件
- 20. 超过1个值到行使用bash
- 21. 使用超过1管道
- 22. 使用$ _POST超过1页
- 23. 使用JavaScript无法在Google地图上导入超过18个KML文件?
- 24. mongoimport v3.2.4在导入json时随机挂起--jsonArray
- 25. 如何导入大小超过某个值的文件?
- 26. zf2如何上传文件,超过1个文件
- 27. 使用d3.json导入本地json文件不起作用
- 28. 上传超过1个文件后启用提交按钮
- 29. 发送超过1个附件文件的电子邮件PHP
- 30. JSON文件没有导入?
谢谢工作魔术 – user850234 2012-07-23 09:37:39
只是一个查询。是不是可以定义一个目录名称,只需指定目录的路径来从中导入所有'json'文件,而不是专门指定文件名。这是因为如果有多个文件,那么我们必须指定所有的文件名,然后执行'for'循环,这与为每个文件手动执行'mongoimport'命令相同。它可以更动态地完成吗? – user850234 2012-07-23 09:58:41
我试过了,但没有奏效。不过,它可以和'mongorestore'一起使用。 – 2012-07-23 10:05:14