所以我在查找我正在寻找的查询结果时遇到了一些问题。在模型方面我有
models.UserRole = sequelize.define('userrole', {
name: {
type: Sequelize.STRING,
primaryKey: true
},
permissions: {
type: Sequelize.ARRAY(Sequelize.STRING),
defaultValue: []
}
});
models.User = sequelize.define('user', {
id: {
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4,
primaryKey: true
},
...
});
models.User.belongsTo(models.UserRole, {foreignKey: 'role'});
我使用 foreignKey 而不是作为,因为我希望该字段完全被称为 role 而不是Sequelize将其更改为(的 ROLENAME )。
无论如何,我现在正在尝试查询并包含权限以及所选用户,因此我使用
models.User.findById(id, {
attributes: ['id','role'],
include: [{
model: models.UserRole,
attributes: ['name', 'permissions']
}]
})
它有效,但它会在字段 userrole 上检索它们,看起来像这样
{"id":"id-here","role":"admin","userrole":{"name":"admin", "permissions":["p1","p2",..]}}
所以最后,我的问题是如何制作它以便从UserRole模型中检索的内容在关键字" role"代替?所以它看起来像
{"id":"id-here","role":{"name":"admin", "permissions":["p1","p2",..]}}