我在节点开发人员中使用了dresende / node-orm2 ORM。但是我需要进行一些LEFT / RIGHT联接,但是我在文档中找不到方法。尝试进行多个连接时,我也遇到了问题。
此代码:
crModel.hasOne ('client', cliModel, {
field: 'client_id'
});
crModel.hasOne ('office', boModel, {
field: 'bo_id'
});
crModel.findByClient ({}).findByOffice ({}).find ({
client_id: 1,
bo_id: 1
}, function () {
console.log (arguments);
});
生成此查询:
SELECT `t1`.`cr_id`, `t1`.`cr_datetime`, `t1`.`credit_id`, `t1`.`gs_id`, `t1`.`cellphone_id`, `t1`.`bo_id`, `t1`.`client_id` FROM `CreditRequests` `t1` JOIN `BranchOffices` `t2` ON `t2`.`bo_id` = `t1`.`bo_id` WHERE `t1`.`client_id` = 1 AND `t1`.`bo_id` = 1
谢谢,对我的英语不好感到抱歉。
最佳答案
ORM的窍门是预想这种关系,而不是使它起作用的命令。对于ORM2,有一个hasMany关联-我将从那里开始。从文档:
patient.getDoctors(function..) // List of doctors
patient.addDoctors(docs, function...) // Adds entries to join table
patient.setDoctors(docs, function...) // Removes existing entries in join table, adds new ones
patient.hasDoctors(docs, function...) // Checks if patient is associated to specified doctors
patient.removeDoctors(docs, function...) // Removes specified doctors from join table
doctor.getPatients(function..)
etc...
// You can also do:
patient.doctors = [doc1, doc2];
patient.save(...)
https://github.com/dresende/node-orm2