主要介紹使用自帶工具mongoimport
工具將 CSV 格式數據導入到 MongoDB 的詳細過程。node
因爲官方提供了mongoimport
工具,因此實際上導入 CSV 格式數據的過程很是簡單,再次體現了越是強大的工具使用起來越簡單。linux
若是已經有要導入的數據庫存在,忽略此步驟,直接查看「導入數據」部分便可。mongodb
首先啓動 mongodb shell 控制檯,直接在終端輸入shell
mongo
便可。
數據庫
查看數據庫和列表
若是沒有須要導入的數據庫,能夠建立一個,具體執行express
show dbs use network db.myCollection.insertOne( { x: 1 } ); show dbs
show dbs
:查看當前存在的數據庫;npm
use network
:這裏network
是上面查詢結果中沒有的,當沒有時,使用use
會自動建立一個新的數據庫;瀏覽器
db.myCollection.insertOne( { x: 1 } );
:爲了能使show dbs
時出現剛纔建立的那個數據庫,使用這條命令插入一條數據;工具
show dbs
:查看剛建立的數據庫。spa
我以前已經建立好數據庫了,這裏以將 csv 數據導入network1
數據庫爲例。
導入數據一句命令便可
mongoimport --db network1 --collection networkmanagement --type csv --headerline --ignoreBlanks --file /home/erik/Documents/networkmanagement-1.csv
--db network1
:須要將數據導入到哪一個數據庫,這裏以networ1
數據庫爲例;
--collection networkmanagement
:將數據導入的 collection 名,這裏以networkmanagement
爲例,若是這個networkmanagement
以前是不存在的,則會自動建立一個。若是省略--collection networkmanagement
這個參數,那麼會自動新建一個以 CSV 文件名爲名的 collection。
--type csv
:文件類型,這裏是 csv;
--headerline
:這個參數很重要,加上這個參數後建立完成後的內容會以 CSV 第一行的內容爲字段名;
--ignoreBlanks
:這個參數能夠忽略掉 CSV 文件中的空缺值;
--file /home/erik/Documents/networkmanagement-1.csv
:這裏就是 csv 文件的路徑了。
這裏使用 adminMongo 查看導入後的數據,這樣更直觀,adminMongo 安裝過程能夠參考:MongoDB可視化圖形界面mongo-express/adminMongo安裝過程
首先要啓動 MongoDB
service mongod start
而後打開 adminMongo
進入到/usr/local/node/node-v6.11.2-linux-x64/lib/node_modules/admin-mongo,而後執行
npm start
啓動完成後,在瀏覽器輸入 http://0.0.0.0:1234
查看network1
中的networkmanagement
數據。
至此,數據導入完成。
mongoimport — MongoDB Manual 3.4:
https://docs.mongodb.com/manual/reference/program/mongoimport/
另外,數字會自動導入爲int字段,須要導爲string能夠參考指定字段類型:
When importing CSV/TSV to mongodb option --columnsHaveTypes can helps to defined the columns but the document seems very unclear. I tried for several times until finally succeed. You should add option --columnsHaveTypes and change every columns after --fields and remeber useing "\" before "(" and ")". for example, change:
mongoimport -hfoohost -d bardb -c fooc --type tsv --fields col1,col2,col3 --file path/to/file.txt
into
mongoimport -h foohost -d bardb -c fooc --type tsv --fields col1.int32\(\),col2.double\(\),col3.string\(\) --columnsHaveTypes --file path/to/file.txt