Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails mongoid返回对象包含引用_Ruby On Rails_Mongodb_Mongoid - Fatal编程技术网

Ruby on rails mongoid返回对象包含引用

Ruby on rails mongoid返回对象包含引用,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,所以我使用Mongoid,我想返回一个对象及其引用。假设我有: class User include Mongoid::Document has_many :pictures end class Picture include Mongoid::Document belongs_to :user end 此代码存在问题: users = User.all #goes to the db users.each do |user| pic = user.pictures.fi

所以我使用Mongoid,我想返回一个对象及其引用。假设我有:

class User
  include Mongoid::Document
  has_many :pictures
end

class Picture
  include Mongoid::Document
  belongs_to :user
end
此代码存在问题:

users = User.all #goes to the db
users.each do |user|
  pic = user.pictures.first # <--- bad! hitting the db again here
end
users=User.all#进入数据库
用户。每个do |用户|

pic=user.pictures.first#这通常通过加入ActiveRecord来完成。大概是这样的:

 User.includes(:pictures).each do |user|
但由于MongoDB不支持联接,所以无法一次性加载父文档及其引用的文档。如果这成为一个问题,你应该考虑在用户文档中嵌入图片(但是,这可能会导致更严重的性能损失)。 更新 Mongoid有一种方法(在页面中搜索“急切加载”)引用关系,但仍然会进行单独的查询。在后续访问关系时不会命中数据库