【发布时间】:2016-09-09 00:05:25
【问题描述】:
如何合并bookshelf.js中相关模型的查询?
就目前而言,ORM 向我想合并的数据库发出两个单独的查询。来自sequelize 可能是这样的:
Model.find({
where: {
someField: 'someValue'
},
include: [{
model: OtherModel,
as: 'otherModel',
where: {
someOtherField: 'someOtherValue' <--- part of the same query
}
}]
})
我在bookshelf.js 中的当前设置(设置了Model 和OtherModel 之间的关系):
Model
.where({ someField: 'someValue' })
.fetch({ withRelated: [{
otherModel: q => q.where({
someOtherField: 'someOtherValue'
})
}] });
这可行,除了knex.js 调试器显示对数据库执行的两个单独的查询。我希望 bookshelf 足够聪明,可以构建连接单个查询的 SQL。
这是可以通过配置或其他方式避免的吗?
【问题讨论】:
标签: javascript orm bookshelf.js knex.js