先说下我操作的步骤。
1.从sql2008的management studio查询5万条数据,使用右键导出为csv
2.由于默认导出没有带列名,手工编辑后增加了列名
3.使用mongoimport导入数据,错误,提示invalid utf8 character
检查了一下,是因为默认导出为csv的时候,不是utf8的格式而是系统的默认编码,采用openoffice编辑另存为utf8格式就可以解决编码问题,但是发现使用openoffice后列名和数据不匹配,列名很多都叠在一起了,虽然数据是能导入进去了,但是根本不能用。
换了一种做法,不使用导出csv,直接copy数据到excel然后另存为csv,一切正常,这里就发生了一个很奇怪的问题,这里使用的编码还是默认的系统编码,为什么不提示错误呢?
由于手工转换成csv在数据量小得时候可以,但是数据量大的时候编辑比较慢,就在mangement studio中配置了一下。
选项-查询结果-sql server-以网格显示结果,选中“在复制或保存结果时包含列标题”
这样在使用导出为csv的时候,默认就是带着列名的。
mongoimport -d local -c testtable --type csv --headerline --file c:\inmongo.csv
直接就可以了。
但是这个编码的问题很奇怪,不知道有人深入了解过没有。
本文MsSQL数据导入到Mongo的默认编码问题(正确导入Mongo的方法)到此结束。懦弱的人只会裹足不前,莽撞的人只能引为烧身,仅有真正勇敢的人才能所向披靡。小编再次感谢大家对我们的支持!