mongoexport返回科学(指数)表示法

时间:2016-06-22 07:32:14

标签: mongodb mongoexport

所以我使用mongoexport导出了一些集合,并发现9999999999999等大整数导出为9.9999999999999e+13

的情况

所以有两个问题:为什么会出现这种情况,我该如何防止这种情况?

谢谢。

2 个答案:

答案 0 :(得分:1)

默认情况下,MongoDB将所有数字文字视为floating point,并且在某个阈值(32位?)之上,当导出为JSON时,它会切换为科学记数法。

答案 1 :(得分:0)

对于转储数据,可以使用--eval命令行客户端的mongo选项和jq命令。那不会以科学计数法给出数据。

例如

mongo --quiet localhost:5010/user  --username alok --password alok --authenticationDatabase admin --eval 'db.users.find({}, {_id: 1, username:1, name: 1}).limit(10).toArray().map(JSON.stringify).join("\n")' | while read item; do echo $(echo $item | jq ._id),$(echo $item | jq .username),$(echo $item | jq .name); done > data.csv