我有一个包含CSV
个文件的文件夹。我想将所有CSV的数据上传到MongoDB。我尝试了以下命令:
for i in *.csv; do mongoimport -d mydatabase -c ${i%.*} --type csv --file $i --headerline ; done
我已修改它以适应我的情况。修改后的命令如下:
for i in "C:\Users\lenovo-pc\Desktop\Testing sample csv\*.csv"; do mongoimport -d Better -c TESTCSV --type csv --file $i --headerline ; done
但它正在给error: i was unexpected at this time.
我想知道如何一次上传文件夹中的所有CSV。我不想一个一个地上传它们。请帮助。
答案 0 :(得分:2)
试试这个:
for %i in (*.csv) do mongoimport -d Better -c TESTCSV --type csv --file "%i" --headerline
确保从存在*.csv
文件的目录中运行此命令。
答案 1 :(得分:1)
我已经为Windows创建了这个脚本,它导入了同一文件夹中的所有CSV,并使用相应CSV的名称命名每个集合。
您需要在.bat文件中复制这些行,然后根据需要编辑变量MONGO_HOME和db:
TITLE MongoDB CSV Importer
SET "MONGO_HOME=C:\Program Files\MongoDB\Server\3.6"
SET db=datasets
for %%v in (*.csv) do "%MONGO_HOME%\bin\mongoimport.exe" -d %db% -c %%~nv --type CSV --file %%v --headerline
TITLE "Import completed!"
PAUSE
对Linux shell脚本(.sh)的作用相同:
db="datasets"
for entry in *".csv"
do
coll=$(echo "$entry" | cut -f 1 -d '.')
echo $name
mongoimport -d $db -c $coll --type CSV --file $coll".csv" --headerline
done
echo "end of import."
希望这有帮助