0

RethinkDB

3 つの異なる値のいずれかに一致する特定のフィールド/属性を持つすべてのレコードを取得したいと考えています。

status以下の例では、'Ready'、'Active'、または 'Something other' に等しいすべてのレコードを表示したい

私はこのようなことができると期待しています:

r.db('db').table('table').filter(

  function (rec) { 
    return [ 'Ready', 'Active', 'Something else' ].includes( rec('status') );   
  }

);

これはエラーではなく、ステータスが「準備完了」、「アクティブ」、または「その他」のすべてのレコードを返すわけでもありません (結果は返されません)。

配列内のいずれかの値に一致するフィールドを持つすべてのレコードを見つけるにはどうすればよいですか?

4

2 に答える 2

2

これに対する最初の直感に近い別の解決策は、次を使用すること.contains(...)です。

r.db('db').table('table').filter(
  function (rec) { 
    return r.expr(['Ready', 'Active', 'Something else']).contains( rec('status'));   
  }
);

これは、正規表現を使用するよりも効率的です。

于 2016-09-09T17:53:48.453 に答える