在使用RethinkDb加入时填充键的数组

时间:2015-11-08 20:48:28

标签: rethinkdb thinky

我在加入另一张桌子时无法填充键列表,所以我想知道我的模型是否正确以及我想用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 个答案:

答案 0 :(得分:0)

终于从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);
})

希望它有所帮助。