如何将多个csv文件导入MongoDB?

时间:2018-01-29 22:00:58

标签: python mongodb csv

我有一个包含大量CSV文件的目录,我想将它们全部导入MongoDB,然后删除所有这些文件。

在Ubuntu 14.04上,以下内容可行:

for f in /home/v/scr/alerts/*; 
do 
    mongoimport -d emails -c main --type csv --file "$f" --headerline && rm /home/v/scr/alerts/*;  
done

但是,我现在收到以下输出(在Ubuntu 16.04上):

2018-01-29T21:49:00.752+0000    connected to: localhost
2018-01-29T21:49:00.759+0000    imported 1 document
2018-01-29T21:49:00.767+0000    Failed: open /home/v/scr/alerts/fH88Vaxr.csv: no such file or directory
2018-01-29T21:49:00.767+0000    imported 0 documents
2018-01-29T21:49:00.772+0000    Failed: open /home/v/scr/alerts/m45EkP9N.csv: no such file or directory
2018-01-29T21:49:00.772+0000    imported 0 documents

似乎第一个CSV文件已正确导入,然后删除了所有内容,这不是我想要的。

1 个答案:

答案 0 :(得分:1)

首次导入后,您将删除源目录中的所有文件

仅删除已导入的文件

for f in /home/v/scr/alerts/*; 
do 
    mongoimport -d emails -c main --type csv --file "$f" --headerline
    rm $f #rm only current file
done
成功导入后

或删除所有源文件

for f in /home/v/scr/alerts/*; 
do 
    mongoimport -d emails -c main --type csv --file "$f" --headerline
done    
rm /home/v/scr/alerts/* #rm all files

我们可以选择包括isFile检查

if [ -f $f ]; then 
    # import 
fi