我无法让LoopBack执行多对多连接查询。考虑documentation中的hasManyThrough示例:
var Physician = ds.createModel('Physician', {name: String});
var Patient = ds.createModel('Patient', {name: String});
var Appointment = ds.createModel('Appointment', {
physicianId: Number,
patientId: Number,
appointmentDate: Date
});
Appointment.belongsTo(Patient);
Appointment.belongsTo(Physician);
Physician.hasMany(Patient, {through: Appointment});
Patient.hasMany(Physician, {through: Appointment});
如果我尝试进行单一搜索以查找与邮政编码为10012的特定医生相关的患者,我可以尝试:
physician.patients({where: {zip: 10012}}, fn);
然而,对医生患者的搜索实际上只是在约会表上搜索。有没有办法直接对特定医生的患者进行简单的搜索?
答案 0 :(得分:1)
LoopBack为physician.patients()实现hasMany / through关系,如下所示:
Appointment.find ({ where: { physicianId: 1 },
include: 'patient',
collect: 'patient' }, callback);
我们正在考虑支持“包含”的过滤器,它会带来“患者”信息。
我建议你在https://github.com/strongloop/loopback-datasource-juggler/issues打开一个问题。