我们目前正在使用 java 驱动程序将巨大的 JSON 文件(~100 MB)导入 MongoDB。目前我们将文件分成更小的块,因为我们第一次遇到导入整个文件的问题。当然,我们知道 MongoDB 的最大文档大小为 16 MB 的限制,但是我们现在导入的块要小得多。
奇怪的是,导入过程在 Linux (eclipse) 上运行时可以正常工作,但同一个程序会在 Windows (eclipse) 上引发“不能说什么”的异常。从数据库观察日志时,错误消息说
> "Thu Sep 13 11:38:48 [conn1] recv(): message len 1835627538 is too
> large1835627538"
在同一数据集上重新运行导入始终会导致有关消息长度的相同错误消息。我们调查了要导入的文档的大小(使用 .toString().length())——导致错误的块只有一些 kB 大。
mongo 数据库在哪个操作系统上运行没有区别,但取决于执行导入代码的位置(使用相同的 java-mongo-driver