【问题标题】:RethinkDB: multiple comparisons filteringRethinkDB:​​多重比较过滤
【发布时间】:2014-05-27 23:53:27
【问题描述】:

根据文档,似乎为了过滤所有 30 岁或 40 岁的用户,我可以这样做(使用 python):

r.table("users").filter((r.row["age"].eq(30)) | (r.row["age"].eq(40))).run(conn)

假设我有一个基于输入/请求的列表:[12, 14, 18, 88, 33 ...],我如何过滤所有年龄在上面列表中元素之一的用户通过迭代它(而不是硬编码)?

【问题讨论】:

  • 如果您在代码中包含必要的导入来确定我们正在使用什么包,那就太好了。

标签: python python-2.6 rethinkdb rethinkdb-python


【解决方案1】:

这是一种方法

valid_ages = [12, 14, 18, 88, 33]

r.table("users").filter(lambda user:
    r.expr(valid_ages).contains(user["age"])
).run(connection)

如果你使用索引和get_all,你可以这样做

r.table("users").get_all(*valid_ages, index="age").run(connection)

(需要在此之前创建索引年龄)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多