如何使用" IN"中的子查询结果使用rethinkDB REQL的子句

时间:2015-12-09 12:20:52

标签: rethinkdb

所以我不确定这是否会考虑内部联接或ReQL中的合并。我想做的是关注我跟随的人的在线状态的变化。

因此,如果我通过参数传递给我的人员,那么第一个查询就会起作用:

r.table("users")
  .getAll(r.args(['mike','foo']), {index: "name"})
  .pluck('name', 'online')
  .changes();

但是,我想传递我的用户名并让它动态获取以下列表 - 我通常会在SQL中使用连接或子查询,但我如何在ReQL中执行此操作?我尝试使用lambda我没有得到正确的语法。

r.table("users")
  .getAll(r.args(lambda following {
       r.table('users').get('mike').pluck('following')
     }), 
     {index: "name"})
  .pluck('name', 'online')
  .changes();

1 个答案:

答案 0 :(得分:1)

您可以编写.getAll(r.args(r.table('users').get('mike')('following')), {index: 'name'}),但订阅可能不符合您认为的更改的更改 - 它会在更改源开始时让用户mike关注,并订阅更改它们,但如果mike开始关注新用户,则该用户不会自动添加到Feed中。