Rethinkdb谓词函数“包含”多个值不起作用
Rethinkdb predicate function 'contains' for multiple values not working
我有一个看起来像这样的数据架构:
{
"datetime": "1453845345493",
"someIds": ["id2000-4", "id1000-34"]
}
其中数组someIds
可以包含许多不同的值。
使用以下查询基于一个 id 进行筛选没有问题,并返回大约 400 个结果。(我也计划实现适当的索引,但现在正在测试一个更简单的情况。
r.db("dbName").table("tableName")
.filter(r.row("datetime").gt(1453845340493))
.filter(function(someVal){
return someVal("someIds").contains("id2000-4");
})
.count()
但是尝试遵循"包含"文档中的最后一个示例,它建议使用谓词函数来模拟"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()
据我所知,我已经完全按照该页面上的说明进行操作,但它不起作用。我正在运行 RethinkDB v2.2.3-1,并在数据资源管理器中运行它。有什么建议吗?
该页面上的示例调用r.expr(ARRAY).contains(SINGLE_VAL)
,而您的代码调用r.expr(ARRAY).contains(OTHER_ARRAY)
。 如果您想检查someIds
是否包含数组中的任何元素,我会为此使用 https://www.rethinkdb.com/api/javascript/set_intersection/。 (所以像.filter(function(someVal) { return r.expr(ARRAY).setIntersection(someVal('someIds')).count().ne(0); })
这样的东西。
如果你想用contains
来做,你可以这样写:
.filter(function(someVal) {
return someVal('someIds').contains(function(someId) {
return r.expr(ARRAY).contains(someId);
});
})
相关文章:
- <text区域>在我的html中包含event.keycode==13之后,wrap就不起作用了
- 谷歌地图API JS V3包含但不起作用
- php文件中包含的jquery文件在服务器上不起作用
- ng-class 在 angularJs 中由 ng-include 包含的文件内不起作用
- :包含不区分大小写的解决方案在替换文本以突出显示时不起作用
- 包含jquery的Javascript在Internet Explorer中不起作用
- Select选项包含在验证模型MVC时不起作用
- 基于屏幕大小的动态包含文件不起作用
- 选择选项包含不起作用
- 在引导选择组件中的搜索不起作用,其中数据令牌包含所有数字;4730”;
- 可调整大小的包含对我不起作用
- JS在我包含它后不起作用
- Window.open 在包含确认对话框的 if 条件中不起作用
- Execcommand justifyCenter在Firefox中不起作用,当P标签包含BR时
- 如果表包含超过 500 行,则导出到 Excel 不起作用
- 为什么JavaScript包含属性在Chrome浏览器中不起作用
- Mutilpe JS文件包含在另一个js文件中有时不起作用
- PHP 变量包含 HTML 和 JavaScript.通过JavaScript将其注入HTML不起作用
- JavaScript 包含在 PHP 中不起作用
- HTML5 canvas元素的JavaScript代码将不起作用——包含一个循环