ongoDB 導入 CSV 格式數據

主要介紹使用自帶工具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
相關文章
相關標籤/搜索