3

问题是,我发现 mongoexport 无法保留 db 中的数据类型。比如有个字段叫“tweetID”,应该是一串数字,比如“23465478”。将集合导出到 csv 文件后,我发现对于某些条目,tweetID 以十进制类型导出,例如“254323467.0”,而有些条目则不是。为了避免不必要的错误,我只想以纯字符串类型导出所有字段。任何人都知道如何在命令 mongoexport 中设置它?提前致谢。

4

1 回答 1

4

你不能。如果 mongoexport 将 123 导出为 123.0,则 123 在文档中是 Double 类型。您应该尝试将值插入为 32 位或 64 位整数

db.collection.insert({ "tweetId" : NumberLong(1234567) })

mongoexport 导出 JSON,使用严格模式 JSON 表示,它将一些类型信息插入到 JSON 中,因此 MongoDB JSON 解析器(如 mongoimport)可以重现正确的 BSON 数据类型,而导出的 JSON 仍然符合 JSON 标准

{ "tweetId" : { "$numberLong" : "1234567" } }

要保留所有类型信息,请改用 mongodump/mongorestore。要将所有字段值导出为字符串,您需要使用驱动程序编写自己的脚本,该驱动程序可获取每个文档并将所有值字符串化。

于 2014-11-24T15:57:41.090 回答