2012-01-06 9 views
0

Mongoid /ルビーを使用して、すべてのサブ文書を取得します。私はこのようにMongoDBでの文書構造を持っている

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

ので、それ自体が埋め込まComment文書のコレクションを持っている組み込みPost文書の収集、と親文書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

+0

@マーティン:はい、申し訳ありませんが、それは私の悪かったです。しかし、私はそれを助けてくれてうれしいです:-) –

+0

あなたはできます: 'user.posts.map(&:comments).flatten' – user2503775

関連する問題