情况:
那是在周五的下午吧,快加班了,领导突然临时加的活儿,给我发了一个文件并说把它导入到测试库MongoDB数据库里面去,表名就是文件名,文件是这样的:
当时我是这样解决的:
参数:
-h:数据库宿主电脑IP
-u:数据库用户名
-p:数据库密码
-d:数据库名
-c :数据库中的表名
–type:指定导入的数据类型
–file:指定从哪一个文件中导入数据,即文件路径
–headerline:仅适用于导入csv、tsv格式的数据,表示文件中的第一行作为数据头
–upsert:以新增或者更新的方式来导入数据
mongodb导入数据
1、打开命令窗口,进入MongoDB安装目录的“bin”目录下
2、输入命令:mongoimport -d cxstatistics -c data --type csv --headerline --file d:\dev\airportslist.tsv --headerline --upsert
3、执行命令即可完成数据的导入。
注:若需要远程导入,只需在命令前加-h。
我是远程连接上传的,所以我的命令是加了-h的,如下:
mongoimport.exe -h 255.255.255.0:27017 -u MongoDB -p 123456 -d B2B -c airportslist --type tsv --headerline --file d:\dev\airportslist.tsv --headerline --upsert
然而最后意外发生了,数据是成功导入了,查看数据的时候,出现了中文乱码的问题,百度了看了好几篇文章试了一下都没解决,最后我静下来仔细想想,决定查看tsv这个文件是什么编码的,把文件拷贝到idea查看的时候,发现全是乱码的,如下图:
我的idea是UTF-8的字符编码,因为MongoDB默认的字符是UTF-8的,这样就找到了问题,是因为文件字符编码是GB2312,所以导入的数据就出现了中文乱码,最后我用Notepad++把GB2312转成UTF-8就完美解决了,如下:
转成功之后重新导入就可以了
最后查看MongoDB就是这样的,没有任何乱码:
参考博客链接:https://blog.csdn.net/hh12211221/article/details/78900709