最近项目需要,所以研究了一下
Mongodb对于文档的导出和导入,因为只用到了json格式所以这里仅仅介绍对json文档的导出和导入
导出导入的两种方法:
- MongoDB Compass界面操作
- Mongo Shell 命令行操作
1. MongoDB Compass
因为这个有可视化窗口,操作非常直接,详情见下图:
第一步,创建对应的Collection来保存你将要导入的数据
然后点击界面左上方有一个
Collection的选项,点开下拉框就会看到有“Import Data”和“Export Collection”两个选项分别是导入数据和导出集合。这里有一个小细节要注意,就是如果你当前没有选中任何Collection的话,这个
Collection的选项是不会出现的,所以这就是为什么要先创建对应的集合的原因。当然,如果你是要导入现有的集合中,直接选中现有的集合,再到左上角找这个按钮即可
然后你就根据自己的需要,选择对应的操作就可以啦。非常简单。
值得一提的就是导出的时候你还可以输入筛选语句去筛选导出结果。
2. Mongo Shell 命令行操作
Mongo Shell 带有对应的导出和导入指令,详情点击这个
官方文档
主要是通过两个指令:
- 导入:mongoimport
- 导出:mongoexport
使用格式:
导入
mongoimport --db 数据库名字 --collection 集合名 --file 文档名.json
除了上面几个必须的属性还有其他很多属性可以在命令行中插入以实现不同功能,这里主要提一下两个我用到的属性:
- –drop:当加入了这个属性之后,当导入数据时,如果数据库已然存在该集合,会自动把集合清空后再导入数据。这个就看情况使用啦,如果你不希望原有数据污染导入数据就加入这个特性。
- –jsonArray: 加入这个属性后表明导入的数据是严谨的json格式。这个看起来挺废话的但是需要注意的是,从MongoDB中导出的json文件其实并不是严谨的json格式表,只是一串json对象排在一起的文档,对象之间并没有用逗号分隔开,以及开头和结尾也缺失包含括号。所以如果你要导入的数据是这样的格式,就不能加入–jsonArray的特性。反之,如果你的json文档是严谨的json内容,就需要加入这个特性才能更好地读取导入内容
导出
mongoexport --db 数据库名字 --collection 集合名 --out 文档名.json
导出我并没有研究太多的属性,所以这里就不瞎讲了,以后如果用到了会再回来补充。不过如果大家需要研究更多的属性还是去
官方文档查询即可。