所以我使用mongoexport
导出了一些集合,并发现9999999999999
等大整数导出为9.9999999999999e+13
所以有两个问题:为什么会出现这种情况,我该如何防止这种情况?
谢谢。
答案 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