咔叽游戏

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1262|回复: 0

[MongoDB] MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例

[复制链接]

该用户从未签到

发表于 2020-4-30 13:42:42 | 显示全部楼层 |阅读模式
需求是这样的:需要修改数据库中某个表的所有数据,所以,要全部导出,然后修改,修改完之后,再把修改后的数据给再导入到mongo去。
具体如下:
备份,导出一张表为json文件
MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例-1.jpg

具体命令:

mongoexport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations --db ezsonar_25 --out /root/host_locations.json解释:
    --host 后的 localhost:要导出数据库 ip--port 后的 27017:要导出的实例节点端口号--username 后的 ezsonaruser:数据库用户名--password 后的 123456:数据库用户密码--collection 后的 widgets-test:要导出的表名--db 后的 ezsonar_25:要导出的表所在数据库名--out 后的 /root/host_locations.json:要导出的文件路径(默认为当前文件夹)
MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例-2.jpg

导出来后的文件,打开的样子是酱紫的。
然后,你就可以在编辑器里面修改啦。修改完之后,再保存。保存之后就可以再导入到数据库啦。
导入,批量插入json数据到一张表去
MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例-3.jpg

具体命令:

mongoimport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations_test --db ezsonar_25 --file /root/shaql/host_locations.json解释:
    -- host 后的 localhost:要导入的数据库 ip--port 后的 27017:要导入的实例节点端口号--username 后的 ezsonaruser:数据库用户名--password 后的 123456:数据库用户密码--collection 后的 host_locations_test:要导入的表名--db 后的 ezsonar_25:要导入的表所在数据库名--file 后的 /root/shaql/host_locations.json:要导入的源文件路径(默认为当前文件夹)
需要注意的地方:

1,不需要进入mongo命令行之后,就可以直接使用上面的2个导入导出命令。
2,导入导出的json文件,你不要随意换行,导出来的就是一行一条数据,你就原封不动的给修改完直接保存,不要换行。不要使用txt这么low的编辑器啦,换个高级点的编辑器吧。
最后,附上这个命令的help说明图

mongoimport 导入的help信息展示如下
MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例-4.jpg

mongoexport 导出的help信息展示如下
MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例-5.jpg

另:

    -f, --fields:代表集合中的字段,可以根据设置选择导出的字段;--type:代表导出输出的文件类型,包括csv和json文件; --skip:跳过指定数量的数据;--limit:读取指定数量的数据记录;--sort:对数据进行排序,可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列,如sort({KEY:1})。
#导出类型为json,数据库:mapdb,集合:bike 字段:bikeId,lat,lng,current_time,source ,条件为source字段为ofo第一条数据
mongoexport --port 27030 -u sa -p Expressin@0618 -d mapdb -c bike -f bikeId,lat,lng,current_time,source --type=json -o bike.csv --query='{"source":"ofo"}' --limit=1
#导出类型为csv,数据库:mapdb,集合:bike 字段:bikeId,lat,lng,current_time,source ,条件为source字段为ofo第一条数据
mongoexport --port 27030 -u sa -p Expressin@0618 -d mapdb -c bike -f bikeId,lat,lng,current_time,source --type=csv -o bike.csv --query='{"source":"ofo"}' --limit=1
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对咔叽网单www.2nzz.com的支持。如果你想了解更多相关内容请查看下面相关链接

原文地址:https://www.jb51.net/article/149292.htm

QQ|免责声明|小黑屋|手机版|Archiver|咔叽游戏

GMT+8, 2024-3-29 20:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表