jon*_*blo 0 mysql orm objection.js
我有这个问题:我如何指示我想用该withGraphFetched方法从数据库获取哪些列,我有一个BelongsToOneRelation并且我想排除一些列,这是我的模型:
module.exports = class ProveedorModel extends Model {
...
static relationMappings = {
empresa: {
relation: Model.BelongsToOneRelation,
modelClass: EmpresaModel,
join: {
from: 'proveedor.empresa_id',
to: 'empresa.id'
}
}
};
...
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我有这个:
const payload = await ProveedorModel.query().withGraphFetched('empresa');
Run Code Online (Sandbox Code Playgroud)
但表empresa有很多我不会的列,那么我该如何过滤呢?
小智 6
您可以filter为您的关系指定财产
class Person extends Model {
static relationMappings = {
pets: {
relation: Model.OneToManyRelation,
modelClass: Animal,
filter: query => query.select('id', 'ownerId', 'name'),
join: {
from: 'Person.id',
to: 'Animal.ownerId'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
参考: https: //github.com/Vincit/objection.js/issues/70#issuecomment-175143072
只是想知道为什么反对在使用时不只查询tableMetadata(https://vincit.github.io/objection.js/api/model/static-methods.html#static-tablemetadata)中映射withGraphFetched的列withGraphJoined
或者,您可以使用 parsedatabasejson ( https://vincit.github.io/objection.js/api/model/instance-methods.html#parsedatabasejson )只映射您想要的属性,但您的 SQL 查询将带来所有这些属性。
| 归档时间: |
|
| 查看次数: |
5642 次 |
| 最近记录: |