以windows为例,整理之前的学习笔记,在此简单记录一下MongoDB数据的导入导出和备份二进制Bson数据。
一、MongoDB导出与导入说明
我们可以通过MongoDB的mongoimport工具和mongoexport工具对MongoDB的数据进行导入导出的操作,他们既可以操作本地服务器,也可以操作远程的服务器,他们共同的参数如下:
-h host 主机的IP --port 端口 -u username 数据库的用户名 -p passwd 数据库的密码这里以本地为例,所以没用到上面参数
他们各自支持的参数,可以通过mongoimport –help 或者 mongoexport –help查看
二、MongoDB导入
mongoimport可以把json格式或csv格式的文件导入到collection,mongoimport主要参数有:
-d: 数据库的名字 -c: collection的名字 -f: 要导入那些列 --type csv/json(默认) --file 导入的文件路径本人MongoDB安装在c盘,先cd到C:\Program Files\MongoDB\Server\4.0\bin的目录下,然后运行mongo,先建一个集合order来测试。
use myTest db.createCollection('order')myTest库是之前已经创建好的
1、导入json格式的文件
这里我是在C:\MongoDB 下新建一个order.json文件,把它导入到集合order中去,
mongoimport -d myTest -c order --file C:\MongoDB\order.json
-d: 指明数据库名,本例中为myTest
-c: 指明collection名,本例中为order
order.json:导入的文件名和路径
内容如下
{ "orderId":1, "money":100, "status":1 } { "orderId":2, "money":200, "status":2 } { "orderId":3, "money":300, "status":3 }
起初order.json本人不小心用逗号隔开了,运行时发现出现如下图的问题
后来把逗号去掉就成功了。
2、导入CSV格式化文件
导入CSV格式文件中的内容,则需要通过–type参数指定导入格式,如图所示我们的orderExport.csv数据如下:
这里,先把order的数据清空,然后导入到order去,执行
mongoimport -d myTest -c order --type csv --headerline C:\MongoDB\orderExport.csv-headerline: 指明第一行是列名,不需要导入
如图所示我们成功导入3条数据了。
三、Mongodb导出
mongoexport工具可以把一个collection导出成json格式或csv格式的文件。
主要参数说明如下:
-d: 指明数据库的名字 -c: 指明collection的名字 -f: 指明要导出那些列 -o: 指明到要导出的文件名 -q: 指明导出数据的过滤条件 --type=csv 导出csv格式(因为默认导出了JSON格式的数据)总之,意思就是问我们要导出:那个库,那个集合(表), 哪几列,哪几行?
我们把上面的order集合的数据导出来。
1、全部简单导出
mongoexport -d myTest -c order -o C:\MongoDB\orderExport.json
如图所示成功导入3条数据了。在我们C:\MongoDB\ 也已生成orderExport.json
2、导出csv格式的数据
比如我们要导出 myTest库,order集合,orderId,money两列,到出的文件名为orderExport.csv。而且是csv格式化的数据,命令如下:
mongoexport -d myTest -c order --type=csv -f orderId,money -o C:\MongoDB\orderExport.csv
加一个条件,导出money大于等于200的数据
mongoexport -d myTest -c order --type=csv -f orderId,money -o C:\MongoDB\orderExport1.csv -q {money:{$gt:200}}小记:
1、导出csv格式时,要用-f指定列字段,否则导不出。
2、使用–type=csv,(一开始我使用的是–csv,报错,按提示使用–type=csv就对了。)
3、开始query用json string,比如:'{money:{$gt:200}}’,发现不对。后来去掉就可以了。
成功了如图所示:
四、备份数据
我们可以使用mongodump命令来导出二进制的数据,也就是备份MongoDB的数据,该命令可以导出所有数据到指定目录中。
比如我们要导出我们上面的myTest数据库
执行
mongodump -d myTest -o C:\MongoDB如图所示成功导出了
参考文档:https://www.mongodb.org.cn/manual/197.html