【问题标题】:What is your preferred ODM in Ruby? MongoMapper, MongoID or MongoDoc?在 Ruby 中,您首选的 ODM 是什么? MongoMapper、MongoID 还是 MongoDoc?
【发布时间】:2010-03-10 09:14:27
【问题描述】:

在 Ruby 中,目前维护了 3 个 ODM(对象数据映射器):

你最喜欢哪个,为什么?

【问题讨论】:

  • 他们为什么不将自己合并到一个 MongoDocuments 中呢?我认为这会促进发展和普及。
  • MongoDoc 和 MongoId 已合并。但是 MongoMapper 和 Mongoid 真的不一样。所以有2个项目很正常

标签: ruby mongodb mongoid mongomapper


【解决方案1】:

我刚刚为一个新的 Rails 3 项目选择了 Mongoid,理由是它拥有最好的文档。

由于我是 MongoDB 新手(拥有多年的 MySQL 经验和一点点 CouchDB 经验),我需要很好的指南来指导我并帮助我在合理的时间内交付一些工作。

AFAIK Mongoid 就是这样:一个漂亮的网站,为像我这样的新手提供了详细的指南。

【讨论】:

    【解决方案2】:

    Mongoid 和 MongoMapper 的代码统计

    看起来 MongoMapper 的代码质量要好得多(如果它用更少的代码做同样的事情的话)。

    这是分析器 CodeStats https://github.com/alexeypetrushin/code_stats

    【讨论】:

    • 众所周知的事实是,更短的代码并不总是意味着更好的性能。
    • 这个帖子是关于首选 ODM 的。我更喜欢更好的性能。 :)
    【解决方案3】:

    在我看来很难说哪个更好,如果你有 DataMapper 经验你会喜欢 MongoMapper,但如果你使用 ActiveRecord,Mongoid 是你的首选。我相信所有这些都值得一试关于你想使用它们的上下文。

    【讨论】:

      【解决方案4】:

      我正在使用 MongoMapper。它很好,只是时间转换有点慢。 并将所有数据加载为数组。 MyCollection.all 例如给你巨大的数组,而不是光标。

      而 Mongoid 说:- 针对超大型数据集进行了优化。

      所以我想如果您需要速度并拥有大量记录集,您可以尝试使用 MongoID。

      【讨论】:

      • MongoMapper里面的性能测试肯定比MongoID快
      【解决方案5】:

      我正在尝试 MongoMapper,但我想我会选择 Mongoid,因为在快速阅读文档后,我觉得它似乎更容易一些。另外,它是由来自 Hashrocket 的人开发的,所以这本身就是一个很好的理由。

      【讨论】:

        【解决方案6】:

        虽然不能直接回答您的问题,但我也会考虑直接使用基本的 ruby​​ 驱动程序。与现有的各种 SQL 适配器不同,Mongo 的 ruby​​ 类易于使用且功能强大。因为查询是散列,所以编写查询通常很容易。真正的优势是可以访问Atomic Modifiers。如果您从文档数据库中受益,这些修饰符应该在您的工具箱中。

        话虽如此,我将继续推荐 MongoMapper,因为它与 MongoDB 的非 CRUD 部分具有更清晰的集成。这两个项目都在这方面取得了进展,但自从我在 2010 年 12 月进行研究后,情况可能会发生变化。

        【讨论】:

          【解决方案7】:

          我可以推荐 MongoMapper,因为它也适用于 rails3(beta 版和 master)。我个人没有尝试您提到的其他 2 个映射器,因为 MM 在我的工作流程中工作得很好并且邮件列表非常活跃。此外,代码库非常稳定,唯一的问题是 rails3 master,所以你应该使用 fredwu 的分支,它已经包含对 form_for 上当前 rails3 master 更改的修复:http://github.com/fredwu/mongomapper.git

          【讨论】:

            【解决方案8】:

            【讨论】:

              猜你喜欢
              • 2010-12-29
              • 2014-09-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-09-30
              • 1970-01-01
              • 1970-01-01
              • 2012-05-09
              相关资源
              最近更新 更多