在rethinkdb中进行连接

时间:2013-09-09 10:14:32

标签: database join many-to-many rethinkdb

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

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~raring(GCC 4.7.3)

1 个答案:

答案 0 :(得分:7)

管理界面中的数据资源管理器使用JavaScript,而联接(http://rethinkdb.com/docs/table-joins/)的文档使用Python示例。 eqJoin是JavaScript驱动程序相当于Python中的eq_join

您应该使用:

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

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