объединение в rethinkdb

Я пытаюсь сделать соединение между двумя таблицами. Команда, которую я запускаю:

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

Моя пользовательская таблица выглядит так:

[
    {
        "email":  "[email protected]"
        "password":  "$2a$10$nO4/KHYkKRcx3D8GYwMCVu.gtsWd1SWzWz27N.TdxqdD9bf.LBXI6"
    }
]

Моя таблица userclientmap выглядит так:

[
    {
        "client_id":  "3c0e6447-ab2f-401e-a09d-d84c32406fe2" ,
        "id":  "d6356002-9e51-4f82-afb7-49799f7b5ded" ,
        "user_id":  "[email protected]"
    }
]

Я получаю следующую ошибку при выполнении моего запроса из консоли администрирования:

Не удалось выполнить запрос.

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)


person Eldamir    schedule 09.09.2013    source источник


Ответы (1)


Обозреватель данных в пользовательском интерфейсе администратора использует 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) .

person Michael Glukhovsky    schedule 09.09.2013
comment
Какая досадная ошибка :P Почему они все равно должны быть другими? Спасибо хоть :) - person Eldamir; 09.09.2013
comment
Драйверы для каждого языка следуют соглашениям родного языка (например, верблюжий регистр для JS, символы подчеркивания для Python). синтаксис для всех языков (например, SQL). Тем не менее, документация, очевидно, должна быть многоязычной, где это возможно — я открою вопрос, чтобы улучшить документацию в таких местах (совершенно понятная ошибка!) - person Michael Glukhovsky; 09.09.2013