按RethinkDB中的ID列表进行筛选

时间:2014-09-12 22:26:20

标签: rethinkdb

我想将所有文档放在一个表中,其id与给定列表中的id匹配。 SQL中的某些内容:SELECT * FROM table WHERE id IN (1, 2, 3, 4)。在RethinkDB中执行此操作的最简单,最有效的方法是什么?

1 个答案:

答案 0 :(得分:10)

如果您想按主键过滤

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

如果你想在字段上过滤" foo"那不是主键

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,请使用下划线而不是camelCase。