Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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 重新定义DB谓词函数';包含';对于多个不起作用的值_Javascript_Rethinkdb_Rethinkdb Javascript - Fatal编程技术网

Javascript 重新定义DB谓词函数';包含';对于多个不起作用的值

Javascript 重新定义DB谓词函数';包含';对于多个不起作用的值,javascript,rethinkdb,rethinkdb-javascript,Javascript,Rethinkdb,Rethinkdb Javascript,我有一个如下所示的数据模式: { "datetime": "1453845345493", "someIds": ["id2000-4", "id1000-34"] } .filter(function(someVal) { return someVal('someIds').contains(function(someId) { return r.expr(ARRAY).contains(someId); }); }) 其中数组someid可以包含许多不同的值 使用

我有一个如下所示的数据模式:

{
  "datetime": "1453845345493",
  "someIds": ["id2000-4", "id1000-34"]
}
.filter(function(someVal) {
  return someVal('someIds').contains(function(someId) {
    return r.expr(ARRAY).contains(someId);
  });
})
其中数组
someid
可以包含许多不同的值

使用以下查询基于一个id进行过滤,不会产生问题,并返回大约400个结果。(我还计划实现适当的索引,但目前正在测试一个更简单的案例。)

但尝试遵循最后一个示例,其中建议使用谓词函数模拟“or”语句,但该语句应返回上述内容的超集,而不返回任何内容:

r.db("dbName").table("tableName")
  .filter(r.row("datetime").gt(1453845340493))
  .filter(function(someVal){
    return r.expr(["id2000-4", "id1000-77"]).contains(someVal("someIds"));
  })
  .count()

据我所知,我已经完全按照那一页上的说明进行了操作,但它不起作用。我运行的是ReflectionDB v2.2.3-1,并在数据资源管理器中运行它。有什么建议吗?

该页面上的示例正在调用
r.expr(ARRAY).contains(SINGLE\u VAL)
,而您的代码正在调用
r.expr(ARRAY).contains(OTHER\u ARRAY)
。如果您想检查
someid
是否包含数组中的任何元素,我会使用它。(比如
.filter(函数(someVal){return r.expr(数组).setIntersection(someVal('someIds')).count().ne(0);})

如果要使用
contains
,可以这样编写:

{
  "datetime": "1453845345493",
  "someIds": ["id2000-4", "id1000-34"]
}
.filter(function(someVal) {
  return someVal('someIds').contains(function(someId) {
    return r.expr(ARRAY).contains(someId);
  });
})