mongoexport 返回科学(指数)符号

mongoexport returning scientific (exponential) notation

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

的情况

所以有两个问题:为什么会这样,我该如何预防?

谢谢。

MongoDB 默认情况下将所有数字文字视为 floating point,超过某个阈值(32 位?)它在导出为 JSON.[=11 时切换为科学记数法=]

要转储数据,您可以使用 mongo 命令行客户端的 --eval 选项和 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