2012-01-06 54 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