Rails Mongoid vs ActiveModel和eager loading

时间:2015-02-26 02:04:16

标签: ruby-on-rails activerecord mongoid eager-loading

我在互联网上找到了很多关于ActiveRecord的热切加载和优化的文档,而不是关于mongoid。

我想认为一切都是一样的,但这太容易了,在某些情况下可能完全错了。 ActiveRecord和Mongoid之间存在一些关键的差异(而不仅仅是嵌入的东西),我想知道......我应该知道什么才能确定我读的内容是否也适用于Mongoid。

例如,this link是我在谷歌的第一个结果之一。我可以假设关于includespreloadeager_load的所有内容也适用于Mongoid吗?

如果我想提取大量深层嵌套信息,我该如何处理Mongoid?

1 个答案:

答案 0 :(得分:1)

这个问题没有简单的答案。对于初学者,您提供的链接引用了使用joins的函数,这些函数在Mongoid中不可用,因此在使用Mongoid时,信息明确不适用。

我想到的其他几个例子:Mongoid允许您直接在文档上存储哈希和数组字段。 Activerecord只能通过序列化存储伪数组。 Mongoid has_has_many_and_belongs_to_many可怕地扩展(在任何地方都没有解释,它只是你实现它时会学到的东西),而当与Activerecord一起使用时,这种关系很棒。

事实是,根据您是否决定使用Mongoid或Activerecord进行构建,您的应用程序架构应该有所不同(可能会有很大差异)。两者都有利有弊。