在rethinkdb中进行连接

Eld*_*mir 0 database many-to-many join rethinkdb

我想在两个表之间建立连接.我正在运行的命令是:

r.table("userclientmap").eq_join("user_id", r.table("users"))
Run Code Online (Sandbox Code Playgroud)

我的'用户'表格如下所示:

[
    {
        "email":  "nielsen.ruben@gmail.com"
        "password":  "$2a$10$nO4/KHYkKRcx3D8GYwMCVu.gtsWd1SWzWz27N.TdxqdD9bf.LBXI6"
    }
]
Run Code Online (Sandbox Code Playgroud)

我的'userclientmap'表如下所示:

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

从管理控制台运行我的查询时收到以下错误:

无法执行查询.

r.table("userclientmap").eq_join("user_id", r.table("users"))
Run Code Online (Sandbox Code Playgroud)

错误:

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'
Run Code Online (Sandbox Code Playgroud)

我真的不知道从哪里开始.我的查询与http://rethinkdb.com/docs/table-joins/上的文档完全相同

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

Mic*_*sky 7

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

你应该使用:

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

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

  • 每种语言的驱动程序都遵循本地语言的惯例(例如JS的camel case,Python的下划线) - 关于RethinkDB的一个美妙的事情是查询语言(ReQL)感觉它正在编写本机代码而不是遵循一个跨所有语言的语法(如SQL).但是,文档显然需要尽可能多语言 - 我会打开一个问题来改进这样的地方的文档(完全可以理解的错误!) (2认同)