json - 从带有多个对象的 JSON 文件批量加载 MongoDB

标签 json couchdb bulkinsert mongodb

我想批量加载到 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/

相关文章:

c# - 使用 C# 在 SQL Server 的临时表中插入 30,000 行的最快方法

javascript - 为什么单击过滤器按钮时我的网页会卡住?

ruby-on-rails - 在 Rails 中渲染 JSON 时包含关联模型

ios - 无法将类型 'SwiftyJSON.JSON' 的值转换为 'Swift.String'

json - couchdb - 导入 json 文件

list - 如何返回我在reduce函数中创建的JSON对象

Json 提取键的字段名称列表

couchdb - Cloudant 和本地 CouchDB 安装 2 路复制

sql-server - Windows 7 上的 SQL Server 批量插入问题

mysql - 将两个数据库合并为一个数据库