继承我的示例数据库,其中包含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我们遇到麻烦。我需要一种方法来构建查询。这本食谱的例子对我来说并没有多大意义。有什么想法吗?
答案 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(...);