使用mongoimport导入多个json文件

use*_*234 24 json mongodb mongoimport

我是新手mongodb,想知道json从一台服务器导入文件到另一台服务器.我尝试了以下命令mongoimport -d test -c bik check.json,它对我来说很好.现在我想知道什么时候有多个json文件我如何一次性导入所有这些文件.我找不到任何相关的文件,这是不可能的.请帮助我这是可能的以及如何

rom*_*nsh 25

我想出了一种更优雅的方式来自动导入所有集合:

ls -1 *.json | sed 's/.json$//' | while read col; do 
    mongoimport -d db_name -c $col < $col.json; 
done
Run Code Online (Sandbox Code Playgroud)

我希望这是有帮助的.


Ser*_*sev 23

您总是可以编写一些shell脚本.

colls=( mycoll1 mycoll2 mycoll5 )

for c in ${colls[@]}
do
  mongoimport -d mydb -c $c.json
done
Run Code Online (Sandbox Code Playgroud)

  • 只是一个查询.是否无法定义目录名称,只需指定目录的路径即可从中导入所有`json`文件,而不是专门指定文件名.这是因为如果有多个文件,那么我们必须指定所有文件名,然后执行`for`循环,这与为每个文件手动执行`mongoimport`命令相同.可以更动态地完成吗? (2认同)

Tom*_*nen 15

Windows批处理版本:

@echo off
for %%f in (*.json) do (
    "mongoimport.exe" --jsonArray --db databasename --collection collectioname --file %%~nf.json
)
Run Code Online (Sandbox Code Playgroud)


Kan*_*mar 6

这在 MAC OS X 中对我有用

find . -regex '.*/[^/]*.json' | xargs -L 1 mongoimport --db DB_NAME -u USER_NAME -p PASSWORD --collection COLLECTION_NAME  --file
Run Code Online (Sandbox Code Playgroud)


hel*_*doc 6

您也可以通过这种方式做到这一点:

for filename in *; do mongoimport --db <Database> --collection <Collection Name> --file $filename; done
Run Code Online (Sandbox Code Playgroud)