主要介绍使用自带工具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