0

だから、私は明らかに愚かすぎて自分でこれを理解できないので、代わりにここでより良い人々にお願いします。

基本的に、次のようなデータ構造があります。

....,
{
 "id": 12345

 ....

 "policy_subjects": [
   {
     "compiled":  "^(user|max|anonymous)$",
     "template":  "<user|max|anonymous>"
   },
   {
     "compiled":  "^max$",
     "template":  "max"
   }
 ]
....
}

コンパイル済みは「コンパイル済み」正規表現です

テンプレートは正規表現修飾子なしの同じ正規表現です


私が望むのは、「コンパイルされた」値を使用して RethinkDB で単純なクエリを実行し、それを「max」などの文字列と照合することです。

Basically 

r.table("regex_policies").filter(function(policy_row) {
  return "max".match("(?i)"+policy_row("policy_subjects")("compiled"))
}

Is what i want to do (+case-insensitive search)

もちろん、データベースには多くの policy_subjects があるため、この例では、結果は "max" に一致するデータセット全体 (1 つの結果) になるはずです。この場合、「max」は 2 回存在し、両方の正規表現に一致するため (1 回で十分です)。

コンパイルされた正規表現のいずれも「foobar」に一致しないため、この例では「foobar」も同様に 0 の結果をもたらします。

この比較的単純なクエリの実行方法を知っている人はいますか?

4

1 に答える 1