Заполните массив ключей при соединении с RethinkDb

Я не смог заполнить список ключей при соединении с другой таблицей, поэтому мне было интересно, верны ли мои модели и возможно ли то, что я пытаюсь сделать с помощью Thinky, вот мой код:

Групповая модель

var Group = thinky.createModel('group', {
    users: [thinky.type.string()],
    place_id: thinky.type.string()
});

Модель пользователя

var User = thinky.createModel('user', {
    name: thinky.type.string()
});

Модель места

var Place = thinky.createModel('place', {
    name: thinky.type.string()
});
Place.hasMany(Group, "groups", "id", "place_id");

Я хотел бы получить все groups с именем пользователя и названием места для place_id

Вот что я сделал:

Place.get(PLACE_ID).getJoin({groups: true}).then(function(g){console.log(g);});

Как я могу заполнить имя пользователя? С помощью _apply? Как?

1 ответ

Получил ответ наконец от владельца Thinky:)

Thinky присоединяется в виде SQL. Смотрите http://thinky.io/documentation/relations/

Если пользователь может принадлежать к нескольким группам:

var Group = thinky.createModel('group', {
    id: thinky.type.string(),
    place_id: thinky.type.string()
});

var User = thinky.createModel('user', {
    id: thinky.type.string()
    name: thinky.type.string()
});

var Place = thinky.createModel('place', {
    name: thinky.type.string()
});

Place.hasMany(Group, "groups", "id", "place_id");

Group.hasAndBelongsToMany(User, 'users', 'id', 'id');

Place.get(PLACE_ID).getJoin({groups: {users: true}}).then(function(g){
    console.log(g);
})

Надеюсь, поможет.

Другие вопросы по тегам