2012-01-06 47 views
0

我在MongoDB中的文档结构类似这样所有的子文档:获取使用Mongoid/Ruby的

User 
|---> Posts 
     |----> Comments 

因此,随着嵌入式Post文档的集合,它本身具有嵌入式Comment文档的集合父文档User

我抢User文件回来,现在整个文档树在内存中,像这样:

user = User.where(username: 'test').first 

user我怎么能得到的所有评论列表?

回答

1

尝试是这样的:

user.posts.map{|p| p.comments}.flatten 

或者

user.posts.flat_map(&:comments) 
+0

谢谢 - 我不得不将其更改为'user.posts.map {| P | p.comments} .flatten',现在按预期工作。 – Martin 2012-01-06 23:01:12

+0

@马丁:是的,对不起,那是我的不好。但我很高兴它有帮助:-) – 2012-01-06 23:02:32

+0

你可以这样做:'user.posts.map(&:comments).flatten' – user2503775 2015-08-24 09:42:45