Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于数据库中数组中所有对象的键/值进行过滤_Javascript_Database_Rethinkdb_Nosql - Fatal编程技术网

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中的表现如何@纽米诺