2016-07-30 3 views
1

こんにちは、私はRethinkDBとJavaScriptの方が一般的です。私は最良の方法は、正規表現の一致を含む複数のフィルタを使用してクエリを実行することですか?RethinkDB - 同時にフィルタリングとマッチング

文字列「試験」

r.table('messages').filter({ 
    channel: 'channel_id' 
}).run(this._rdbConn) 

r.table('messages').filter(r.row('text').match('^test').run(this._rdbConn) 

いただければ幸い答えに加えて参照することが有用である任意のドキュメントで始まる所定のチャネル内のすべてのメッセージを見つけることを目標に1にこれらの2つのクエリをマージします。

編集:フィルタをチェーンできることに気付きましたが、私がしようとしていることを達成する正しい方法ですか?

r.table('messages').filter({ 
    channel: 'channel_id' 
}).filter(r.row('text').match('^test')).run(this._rdbConn) 

答えて

0

おそらく、フィルタを連鎖させるのが最も簡単な方法です。 .filter(function(row) { return row('channel').eq('channel_id').and(row('text').match('^test')); })と書くこともできます。

関連する問題