2016-08-31 17 views
2

MethoDBの$ elemMatchと同様に、RethinkDBのネストされた配列の要素をフィルタリングすることはできますか?例えばRethinkDBでフィルタリングされたネストされた配列を返す方法は?

、我々は次のように単純なテーブルのコレクションを持っている場合:私は、ユーザ「ポール」が含まれているフィルタ配列で、ドキュメントを返すようにフィルタを記述しますどのように

[ 
    { 
     "name": "test1" , 
     "nested": [ 
      { 
       "name": "nested1" , 
       "user": "paul" 
      } , 
      { 
       "name": "nested2" , 
       "user": "paul" 
      } , 
      { 
       "name": "nested3" , 
       "user": "dave" 
      } 
     ] 
    } , 
    { 
     "name": "test2" , 
     "nested": [ 
      { 
       "name": "nested4" , 
       "user": "dave" 
      } , 
      { 
       "name": "nested5" , 
       "user": "paul" 
      } , 
      { 
       "name": "nested6" , 
       "user": "steve" 
      } 
     ] 
    } 
] 

だから私の結果は次のようになります。

[ 
    { 
     "name": "test1" , 
     "nested": [ 
      { 
       "name": "nested1" , 
       "user": "paul" 
      } , 
      { 
       "name": "nested2" , 
       "user": "paul" 
      } 
     ] 
    } , 
    { 
     "name": "test2" , 
     "nested": [ 
      { 
       "name": "nested5" , 
       "user": "paul" 
      } 
     ] 
    } 
] 

私は文書を取得することができます。

どのように私は、ネストされた配列をフィルタリングするのですか?

おかげで、

ポール

答えて

2
table.map(function(row) { 
    return row.merge({ 
     nested: row('nested').filter({user: 'paul'}) 
    }) 
    }) 
+0

それは、我々は何をすべきを、ユーザポールを持っているかどうかにかかわらず、すべてのレコードを返しますか? –

関連する問題