Node.js Sequelize:查询在何处使用foreignKey而不是as
因此,我在获取我要查找的查询结果时遇到了一些问题。就我的模型而言Node.js Sequelize:查询在何处使用foreignKey而不是as,node.js,postgresql,sequelize.js,Node.js,Postgresql,Sequelize.js,因此,我在获取我要查找的查询结果时遇到了一些问题。就我的模型而言 models.UserRole = sequelize.define('userrole', { name: { type: Sequelize.STRING, primaryKey: true }, permissions: { type: Sequelize.ARRAY(Sequelize.STRING), defaultValue: [
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而不是as,因为我希望字段被准确地称为角色,而不是Sequelize将其更改为(角色名)
无论如何,我现在尝试查询并包括所选用户的权限,因此我使用
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",..]}}