2

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

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

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

4

1 回答 1

4

这是一种方法

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

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

如果您使用的是索引 and get_all,您可以这样做

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

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

于 2014-05-28T00:33:32.750 回答