Мои данные в RethinkDb выглядят примерно так:
[appointments]
{
id: 1,
date: "2016-01-01",
stylistId: 1,
}
[stylists]
{
id: 1,
name: "Sue",
}
На клиенте я хочу получить встречу и встроить стилиста в объект встречи следующим образом:
{
id: 1,
date: "2016-01-01",
stylist: {
id: 1,
name: "Sue",
}
}
Я могу добиться чего-то близкого, используя этот запрос:
return this.hz('appointments')
.find(appointmentId)
.fetch()
.toPromise()
.then(appointment => {
return this.hz('stylists').find(appointment.stylistId)
.fetch()
.toPromise()
.then(stylist => {
appointment.stylist = stylist;
return appointment;
});
})
.then(appointment => this.appointment = appointment);
Мне интересно, есть ли более чистый способ добиться желаемого результата. Я знаю, что RethinkDb поддерживает объединение, но не похоже, что он представлен в Horizon. Я также не очень хорошо разбираюсь в RxJS, поэтому мне интересно, можно ли там выполнить соединение более аккуратно.