我有一个RethinkDB表,其记录结构如下:
{
one: [
{
field: val,
foo: bar
},
{
field: val2
}
]
}
现在,如果我做了类似
的事情reql = reql.filter(function(tb) {
return tb("one").contains(function(k) {
return k("field").eq(val);
});
});
我匹配键中的其中一个对象的所有文档"一个"有一个关键"字段"值匹配" val"。但是,我想要做的只是匹配所有数组中对象的文档在" one"有钥匙"字段"值匹配" val"。
我该怎么做?
答案 0 :(得分:1)
您可以将数组的每个元素映射到布尔值(“field”的值是否为“val”),然后使用and
缩小。
这样的事情:
reql.filter(function(tb) {
return tb("one").map(function(element) {
return element("field").eq("val")
}).reduce(function(left, right) {
return left.and(right)
})
})