我正在查询 mongodb 中的约 1.2 亿条记录。查询通过 mongo shell 和使用 Java 驱动程序快速执行,但是当我尝试通过 Java 驱动程序将结果转换为 json 对象时,它非常慢(查询需要 < 100 毫秒,但转换为 json 需要 > 30 秒) . 结果集有大约 5k 个项目。我正在使用JSON.serialize(cursor)
.
虽然我希望转换为 json 字符串需要一些时间,但如果我从 shell 运行查询但执行
var cursor = //execute query
var arr = cursor.toArray();
arr
它打印得非常快。
mongo 服务器统计在序列化过程中报告了越来越多的页面错误,但我已将我的 RAM 增加到比整个集合和索引大得多。
关于这里可能发生的事情以及如何提高转换为 json 的速度的任何想法?