所以,由于我显然太笨了,无法自己解决这个问题,所以我会在 SO 上问你们更好的人。
基本上我有一个如下所示的数据结构:
....,
{
"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”在这种情况下存在两次,并且它匹配两个正则表达式(一次就足够了)。
在这个例子中,“foobar”同样会产生 0 个结果,因为任何编译的正则表达式都不匹配“foobar”。
有谁知道如何做这个相对简单的查询?