gpt4 book ai didi

ruby-on-rails - mongoid 中的 N+1 问题

转载 作者:IT老高 更新时间:2023-10-28 13:14:26 25 4
gpt4 key购买 nike

我正在使用 Mongoid 在 Rails 中使用 MongoDB。

我正在寻找类似事件记录 include 的内容。目前我在 mongoid orm 中找不到这样的方法。

任何人都知道如何在 mongoid 或可能在 mongomapper 中解决这个问题,这是另一个很好的替代方案。

最佳答案

现在已经过去了一段时间,Mongoid 确实增加了对此的支持。请参阅此处的“急切加载”部分:
http://docs.mongodb.org/ecosystem/tutorial/ruby-mongoid-tutorial/#eager-loading

Band.includes(:albums).each do |band|
p band.albums.first.name # Does not hit the database again.
end

我想指出:

  1. Rails 的 :include 不进行连接
  2. SQL 和 Mongo 都需要预先加载。
  3. N+1 问题发生在这种场景中(在循环内生成查询):

.

<% @posts.each do |post| %>
<% post.comments.each do |comment| %>
<%= comment.title %>
<% end %>
<% end %>

看起来@amrnt 发布的链接已合并到 Mongoid 中。

关于ruby-on-rails - mongoid 中的 N+1 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3912706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com