我想批量加载到 MongoDB。我有大约 200GB 的文件,其中包含要加载的 JSON 对象,问题是我无法使用 mongoimport 工具,因为对象包含限制为 4MB 的对象(即我需要使用 --jsonArray aaram)。
CouchDB 中有 Bulk Load API,我可以在其中编写脚本并使用 cURL 发送 POST 请求以插入文档,没有大小限制...
MongoDB 中有这样的东西吗?我知道有 Sleepy 但我想知道这是否可以处理 JSON 嵌套数组插入..?
谢谢!
最佳答案
好吧,基本上似乎没有真正好的答案,除非我用 Java 或 Ruby 之类的东西编写自己的工具来传递对象(嗯,努力)......但这真的很痛苦,所以我决定简单地将文件小到 4MB block ...刚刚使用 split 编写了一个简单的 shell 脚本(请注意,由于限制,我不得不多次拆分文件)。我将 split 命令与 -l (行号)一起使用,因此每个文件中都有 x 行。在我的例子中,每个 Json 对象大约是 4kb,所以我只是猜测了行的大小。
对于任何想要这样做的人,请记住 split 只能生成 676 个文件 (26*26),因此您需要确保每个文件中有足够的行以避免丢失一半的文件。无论如何,将所有这些放在一个好的旧 bash 脚本中并使用 mongo import 并让它在一夜之间运行。最简单的解决方案 IMO,无需在 Ruby/Java 或 w.e. 中剪切和混合文件并解析 JSON。别的。
脚本有点定制,但如果有人想要它们,只需发表评论和恶意帖子。
关于json - 从带有多个对象的 JSON 文件批量加载 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6547713/