1 回答
TA贡献1794条经验 获得超7个赞
你肯定想在r.expr这里使用,我得到了这个例子:
r.expr([{
"id": 12345,
"policy_subjects": [
{
compiled: "^(user|max|anonymous)$",
template: "<user|max|anonymous>"
},
{
compiled: "^max$",
template: "max"
}
]
}]).merge(function(policy_row) {
return {
"policy_subjects": policy_row("policy_subjects").filter(function(item){
return r.expr("max").match(r.expr("(?i)").add(item("compiled"))).ne(null);
})
}
})
更改max为不匹配的其他内容,返回内部没有元素的文档policy_subjects。
例如,将max=>更改为wat(我一直以来最喜欢的测试字符串)如下所示:
.merge(function(policy_row) {
return {
"policy_subjects": policy_row("policy_subjects").filter(function(item){
return r.expr("wat").match(r.expr("(?i)").add(item("compiled"))).ne(null);
})
}
})
结果如下:
[
{
"id": 12345 ,
"policy_subjects": [ ]
}
]
我认为你减少到policy_subject你想要的一个文档的逻辑可能对你的用例有点主观,所以我不确定正确的答案是什么,但你可以.reduce(...)用来只返回最右边的值。
- 1 回答
- 0 关注
- 204 浏览
添加回答
举报