【问题标题】:Rails Mongoid vs ActiveModel and eager loadingRails Mongoid vs ActiveModel 和急切加载
【发布时间】:2015-04-28 06:52:07
【问题描述】:

我在 Internet 上找到了很多关于 ActiveRecord 的预加载和优化的文档,而不是关于 mongoid 的文档。

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

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

如果我想拉很多深层嵌套的信息,我应该如何进行Mongoid?

【问题讨论】:

  • 很多 AR 内容不适用于 Mongoid,因为您没有连接,而且您在关系数据库中处理事物的方式与在 MongoDB 中非常不同。我发现 MongoDB 中的大多数查询优化问题都归结为非规范化(即在整个地方复制内容)或嵌入。

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


【解决方案1】:

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

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

事实上,您的应用程序架构应该会有所不同(可能会发生巨大变化),具体取决于您决定使用 Mongoid 还是 Activerecord 进行构建。两者都有优点和缺点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多