RethinkDB:​​多重比较过滤

时间:2014-05-27 23:53:27

标签: python python-2.6 rethinkdb rethinkdb-python

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

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

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

1 个答案:

答案 0 :(得分:4)

这是一种方法

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)

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