数据的导入和导出
注意:
下述命令操作都是在本地mongo安装目录下的bin目录下进行操作的,
CSV文件的特点是体积较小,但是阅读性比较差。JSON文件的特点是体积比CSV大但是阅读性会比较好。
1.导出集合数据
mongoexport命令可以把一个集合数据导出成JSON或者CSV格式的文件。
命令:
mongoexport --host=localhost --port=27017 -u admin -p abc123456 --authenticationDatabase=admin -d school -c teacher -f "_id,name,sex,age" -o D:/student.json
–host:ip地址
–port:端口号
-u:用户名
-p:密码
-d:逻辑库的集合
-c:集合
-f:表示需要备份集合当中的字段(非必写)
-o 表示存储的位置。
如图所示:
2.导入集合数据
命令:mongoimport
命令:
mongoimport --host=localhost --port=27017 -u admin -p abc123456 --authenticationDatabase=admin -d school -c student --file D:/student.json
输入导入命令后,显示成功导入两条jison文件的数据:
在客户端查看导入的结果显示了刚刚导入的两条数据,代表导入成功:
3.导出逻辑库数据
mongodump
命令:
mongodump --host=localhost --port=27017 -u admin -p abc123456 --authenticationDatabase=admin -d school -o D:/
-d:如果不写这个参数的话,则代表导出这个mongodb中的所有逻辑库中的数据,导出后每一个逻辑库都有独立的文件夹。
-o:如果没有指定文件名称,则会在D盘导出和-d school 同名的文件【school】
--dumpDbUserAndRoles参数可以备份可以备份隶属于逻辑库的用户
如图所示:
输入导入命令后成功显示导出了school逻辑库当中的两个集合数据到D盘中:
bson文件是二进制的json文件,。在.josn 文件中既有集合又有索引关系,而导出集合的文件中只有文件数据,所以导出文件时最好选择导出逻辑库。
4.导入逻辑库数据
mongorestore
命令:
mongorestore --host=localhost --port=27017 -u admin -p abc123456 --authenticationDatabase=admin --drop -d school D:/school
- -drop表示删除导入已有逻辑库的数据再做导入操作,不写该参数则不会删除已有的数据
无法用mongorestore.exe导入json文件:
即含有mongoexport.ext和mongoimport.exe的目录下 如果想通过命令导入json文件, 报错:uncaught
exception: SyntaxError: unexpected token: identifier: @(shell):1:20
原因:
mongodb是msi安装版, bin目录并没有mongoimport.exe工具类
解决方法:
下载文件,将bin目录中所有文件, 复制到mongodb的bin目录。
https://www.mongodb.com/try/download/database-tools