0

我正在尝试在两个表之间进行连接。我正在运行的命令是:

r.table("userclientmap").eq_join("user_id", r.table("users"))

我的“用户”表如下所示:

[
    {
        "email":  "nielsen.ruben@gmail.com"
        "password":  "$2a$10$nO4/KHYkKRcx3D8GYwMCVu.gtsWd1SWzWz27N.TdxqdD9bf.LBXI6"
    }
]

我的 'userclientmap' 表如下所示:

[
    {
        "client_id":  "3c0e6447-ab2f-401e-a09d-d84c32406fe2" ,
        "id":  "d6356002-9e51-4f82-afb7-49799f7b5ded" ,
        "user_id":  "nielsen.ruben@gmail.com"
    }
]

从管理控制台运行查询时出现以下错误:

无法执行查询。

r.table("userclientmap").eq_join("user_id", r.table("users"))

错误:

TypeError: Object function () {
    var args;
    args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
    if (args.length !== fun.length) {
      throw new err.RqlDriverError("Expected " + fun.length + " argument(s) but found " + args.length + ".");
    }
    return fun.apply(this, args);
  } has no method 'eq_join'

我真的不知道从这里去哪里。我的查询看起来与http://rethinkdb.com/docs/table-joins/上的文档中的查询完全一样

我正在运行 rethinkdb 版本 1.8.1-0ubuntu1~raing (GCC 4.7.3)

4

1 回答 1

7

管理 UI 中的数据资源管理器使用 JavaScript,而连接文档 ( http://rethinkdb.com/docs/table-joins/ ) 使用 Python 示例。eqJoin是 JavaScript 驱动程序eq_join在 Python 中的等价物。

你应该使用:

r.table('userclientmap').eqJoin('user_id', r.table('users'))

(见http://www.rethinkdb.com/api/#js:joins-eqJoin)。

于 2013-09-09T10:58:54.380 回答