2014-03-05 132 views
0

我無法使LoopBack執行多對多連接查詢。考慮到從documentation的hasManyThrough例如:LoopBack中的MySQL多對多關係

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); 

但是,搜索醫生的病人實際上只是在預約表上搜索。是否有任何方法可以直接進行鍼對特定醫師患者的簡單搜索?

回答

1

環回實現如下的physician.patients的的hasMany /通過關係():

Appointment.find ({ where: { physicianId: 1 }, 
    include: 'patient', 
    collect: 'patient' }, callback); 

我們正在考慮支持的「包括」過濾器帶來詮釋「病人」的信息。

我建議你在https://github.com/strongloop/loopback-datasource-juggler/issues處打開一個問題。