RethinkDB查询过滤单个键的多个值

时间:2017-06-07 23:34:06

标签: dynamic rethinkdb

继承我的示例数据库,其中包含3行

{type:"a", info:""}
{type:"b", info:""}
{type:"c", info:""}

使用rethink db我将如何列出所有类型的值a或b

//这是我的第一个解决方案,但我无法动态构建它

r.table("example").filter(r.row("type").eq("a").or("b")).run(conn, function(err, results){...});

所以如果下次我想要类型a和c我们遇到麻烦。我需要一种方法来构建查询。这本食谱的例子对我来说并没有多大意义。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您撰写了r.row('type').eq('a').or('b'),但这并不符合您的预期。

您可能需要r.row('type').eq('a').or(r.row('type').eq('b'))

你也可以写r.expr(['a', 'b']).contains(r.row('type'))

答案 1 :(得分:0)

我发现因为过滤器只是一个我可以拥有的对象

var filter;
filter = r.row("type").eq('a');

如果我想添加更多内容,那么你只需添加一个和/或op到过滤器。     filter = filter.and(...);