我有一个看起来像这样的数据模式:
{
"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()
但是尝试遵循“包含”文档中的最后一个示例,该示例建议使用谓词函数来模拟“或”语句,但它应该返回上述内容的超集:
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,并在数据资源管理器中运行它。有什么建议么?