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