我正在寻找使用 MongoMapper 的 Eager Load Associated Documents。假设我有一个具有 :has_one 条件的作者,我应该能够使用单个查询加载作者
Post.find(:all, :include => :author)
有什么建议么?
我正在寻找使用 MongoMapper 的 Eager Load Associated Documents。假设我有一个具有 :has_one 条件的作者,我应该能够使用单个查询加载作者
Post.find(:all, :include => :author)
有什么建议么?
更新:下面的代码就像模型工作流一样。我在一些编码后尝试了它,它没有工作!
假设您有 Post 模型和 User 模型。
用户有很多帖子,并且您想要所有用户(作者)及其帖子。
这里有一个技巧来处理它。我的例子是获取一篇文章。
post.rb
class Post
include MongoMapper::Document
key :title, String
key :body, String
key :user_id, ObjectId
belongs_to :user
end
和用户.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