问题是,我发现mongoexport无法保留db中的数据类型。例如,有一个名为“tweetID”的字段,它应该是一串数字,如“23465478”。将集合导出到csv文件后,我发现对于某些条目,tweetID被导出为十进制类型,如“254323467.0”,而某些条目则不是。为了避免不必要的错误,我只想导出纯字符串类型的所有字段。任何人都知道如何在命令mongoexport中设置它?提前谢谢。
答案 0 :(得分:4)
你做不到。如果mongoexport将123导出为123.0,那么123在文档中是Double类型。您应该尝试将值插入为32位或64位整数
db.collection.insert({ "tweetId" : NumberLong(1234567) })
mongoexport使用strict mode JSON representation导出JSON,它将一些类型信息插入到JSON中,因此MongoDB JSON解析器(如mongoimport)可以重现正确的BSON数据类型,而导出的JSON仍然符合JSON标准
{ "tweetId" : { "$numberLong" : "1234567" } }
要保留所有类型信息,请改用mongodump / mongorestore。要将所有字段值导出为字符串,您需要编写自己的脚本,并使用驱动程序获取每个文档并对所有值进行字符串化。