Javascript 基于数据库中数组中所有对象的键/值进行过滤
我有一个数据库表,其记录结构如下:Javascript 基于数据库中数组中所有对象的键/值进行过滤,javascript,database,rethinkdb,nosql,Javascript,Database,Rethinkdb,Nosql,我有一个数据库表,其记录结构如下: { one: [ { field: val, foo: bar }, { field: val2 } ] } reql.filter(function(tb) { return tb("one").map(function(element) { return element("field").eq("val") }).reduce(function(left, right) {
{
one: [
{
field: val,
foo: bar
},
{
field: val2
}
]
}
reql.filter(function(tb) {
return tb("one").map(function(element) {
return element("field").eq("val")
}).reduce(function(left, right) {
return left.and(right)
})
})
现在,如果我这样做
reql = reql.filter(function(tb) {
return tb("one").contains(function(k) {
return k("field").eq(val);
});
});
我匹配所有文档,其中数组中键“one”上的一个对象有一个键“field”和一个匹配“val”的值。但是,我要做的是只匹配那些在key“one”上数组中的所有对象都有key“field”和匹配“val”的值的文档
如何执行此操作?您可以将数组中的每个元素映射为布尔值(“field”的值是否为“val”),然后使用
和
进行缩减
比如说:
{
one: [
{
field: val,
foo: bar
},
{
field: val2
}
]
}
reql.filter(function(tb) {
return tb("one").map(function(element) {
return element("field").eq("val")
}).reduce(function(left, right) {
return left.and(right)
})
})
这段代码在python中的表现如何@纽米诺