【发布时间】:2014-09-12 22:26:19
【问题描述】:
我想获取一个表格中的所有文档,它们的 id 与给定列表中的一个匹配。 SQL 中的内容类似于:SELECT * FROM table WHERE id IN (1, 2, 3, 4)。在 RethinkDB 中最简单、最有效的方法是什么?
【问题讨论】:
标签: rethinkdb
我想获取一个表格中的所有文档,它们的 id 与给定列表中的一个匹配。 SQL 中的内容类似于:SELECT * FROM table WHERE id IN (1, 2, 3, 4)。在 RethinkDB 中最简单、最有效的方法是什么?
【问题讨论】:
标签: rethinkdb
如果要按主键过滤
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(...)
这些 sn-ps 是用 JavaScript 编写的。如果您使用的是 Python/Ruby,请使用下划线而不是 camelCase。
【讨论】: