2014-09-12 83 views
2

我想获得一个表中的所有文档,其ID与给定列表中的一个匹配。 SQL中的某些内容如下所示:SELECT * FROM table WHERE id IN (1, 2, 3, 4)。 RethinkDB中最简单和最有效的方法是什么?在RethinkDB中按ID列表筛选

回答

9

如果要通过主键来过滤

arrayOfIds = [1,2,3,4] 
r.table("tableName").getAll(r.args(arrayOfIds)).run(...) 

如果你想在球场上“富”,是不是主键

arrayOfIds = [1,2,3,4] 
r.table('tableName").indexCreate('foo").run(...) 
r.table("tableName").getAll(r.args(arrayOfIds), {index: "foo"}).run(...) 

而如果没有索引筛选:

arrayOfIds = [1,2,3,4] 
r.table('tableName").filter(function(doc) { 
    return r.expr(arrayOfIds).contains(doc("foo")) 
}).run(...) 

这些片段是用JavaScript编写的。如果您使用Python/Ruby,请使用下划线而不是驼峰。

+0

非常详细的答案,谢谢! – linkyndy 2014-09-13 08:35:11