【问题标题】:Importing a Large Dataset in MongoDB via MongoID通过 MongoID 在 MongoDB 中导入大型数据集
【发布时间】:2011-08-12 05:11:34
【问题描述】:

要在 MongoDB 中导入大型 JSON 数据集,我们有 mongoimport 实用程序,其工作原理如下:

mongoimport --host xxx.xxx.xxx.xxx --db destination-db -c tags < tmp/source-file.json

有没有办法使用 MongoID(MongoDB 的 ruby​​ Object-Document-Mapper)调用“mongoimport”?

谢谢 卢卡

【问题讨论】:

  • 您有这样做的理由吗?
  • 将“业务逻辑”体现到 Rails 应用程序中,避免在 crontab 或其他东西中使用“外部”shell 命令,这变得依赖于平台。例如,您将如何在 Heroku 中使用 mongoimport?
  • 那么,您在某处有一个导出(通过哪个过程?)并且您想使用代码而不是实用程序来导入它?
  • 我想“获取”一个 json 文档,从外部 API 提供程序,将 json 直接存储到 MongoDB,使用我的 Rails 应用程序和 MongoID 接口已经到位...
  • 我也想知道怎么做。过去,我刚刚从 rails (`mongoimport`) 中执行了一个系统命令,但该解决方案远非理想。

标签: json mongodb mongoid nosql


【解决方案1】:

Mongoid 实际上是 Ruby 驱动程序的包装器。 Ruby 驱动程序应该允许您运行任何数据库命令。

但是,mongoimport 不是命令。 mongoimport 是一个单独的二进制(或可执行)文件。

从 Ruby 运行 mongoimport 的唯一方法是“脱壳”。通常这涉及使用某种形式的exec 命令。这是running shell commands from Ruby 的第一个搜索链接。

【讨论】:

  • 感谢盖茨副总裁非常有用的文章。我终于得到了运行系统的工作(“mongoimport --host localhost --db myDB --collection repo --file tags.json -f repositories”)
【解决方案2】:

您还可以从文件中解析 JSON,然后直接在 rake 任务中运行 Model.create(json_obj)Mode.save

【讨论】:

    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 2012-12-13
    • 1970-01-01
    相关资源
    最近更新 更多