使用MongoMapper急切加载关联

时间:2010-09-03 05:03:08

标签: mongodb mongomapper

我正在寻找使用MongoMapper的Eager Load Associated Documents。假设我的帖子有一个:has_one条件的作者,我应该能够使用单个查询加载作者

Post.find(:all, :include => :author)

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

更新:下面的代码就像模型工作流程一样。我在编码后尝试过它并没有用!

假设您有Post模型和用户模型。

用户has_many帖子,您想要所有用户(作者)发帖。

这里有处理它的提示。我的例子是获取一个帖子。

post.rb

class Post
  include MongoMapper::Document

  key :title, String
  key :body, String
  key :user_id, ObjectId

  belongs_to :user

end

和user.rb

class User
  include MongoMapper::Document
  key :name
  many :posts, :embed => :title
end

现在,

u = User.first
p = u.posts.first

puts p.title # read it from embedded doc
puts p.body # lazy loading

这里的诀窍是嵌入大多数常见字段,如用户名,_id,用户slug等。

我没有测试上面的内容,但你必须尝试一下!

最佳

--Amr