Заполните массив ключей при соединении с 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);
})
Надеюсь, поможет.