【问题标题】:Filter by list of ids in RethinkDB在 RethinkDB 中按 id 列表过滤
【发布时间】:2014-09-12 22:26:19
【问题描述】:

我想获取一个表格中的所有文档,它们的 id 与给定列表中的一个匹配。 SQL 中的内容类似于:SELECT * FROM table WHERE id IN (1, 2, 3, 4)。在 RethinkDB 中最简单、最有效的方法是什么?

【问题讨论】:

    标签: rethinkdb


    【解决方案1】:

    如果要按主键过滤

    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。

    【讨论】:

      猜你喜欢
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 2021-10-20
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多