使用mongoid与activerecord的成本/收益是多少?

时间:2013-12-19 16:05:13

标签: ruby-on-rails ruby activerecord mongoid

谷歌搜索引导我寻找并行使用mongoid和activerecord的问题。我已经看到很多特定于mongoid的问题和许多特定于activerecord的问题,但没有人比较它们。

我想问题是,使用mongoid db的mongoid适配器和使用mysql运行activerecord有什么好处?

3 个答案:

答案 0 :(得分:5)

Mongoid和ActiveRecord都是database ORM(从技术上讲,Mongoid是ODM,但这是另一个话题)。但是,Mongoid仅针对MongoDB数据库,而ActiveRecord针对PostgreSQL,MySQL和SQLServer等关系数据库。

出于这个原因,实际上不可能比较它们。事实上,他们不是另一个的替代品。您使用哪一个取决于您的应用程序背后的数据库。

您可以将ActiveRecord与DataMapper或Sequel进行比较。同样地,你可以将Mongoid与MongoMapper进行比较(实际上你可以,但没有比较,因为最后一个几乎已经死了)。

出于这个原因,我认为这个问题没有意义。我假设人们会因为数据库而选择ORM,而不是因为ORM而选择数据库。

答案 1 :(得分:3)

您正在谈论对象文档映射器(ODM)和对象关系映射器(ORM)。

Mongoid是MongoDB的ODM。 这是一个NoSQL数据库。

ActiveRecord是PostgreSQL(和其他一些)的ORM。 这是SQL数据库。

所以真正的问题是:

  

我应该使用SQL还是NoSQL数据库?

回答后,您可以选择ODM或ORM。

答案 2 :(得分:-1)

如果需要,请使用MongoDB

  • 荒谬的快速写作
  • 快速读取简单索引
  • 要么没有架构,要么SQL会强制您手动实现的架构,因为SQL无法理解它

如果需要,请使用

  • 慢写
  • 充分阅读任意复杂的数据关系
  • 表,记录和键的传统模式

两个系统都支持ACID& CRUD,所以如果你也不需要那些,请不要使用它们!