有人知道如何在Sequelize中执行查询吗(其中没有SQL双关语),将包含的模型属性合并到父模型上?用户模型,user_profile模型和查询如下。我想返回一个具有以下属性的对象:['id','username','role','is_active','email','first_name','last_name']。谢谢!
<div class="bookParty">
<span>Book a Party</span>
</div>
答案 0 :(得分:0)
两个模型都需要在同一序列对象中定义。
const User = sequelize.define(
'User',
{
username: { type: DataTypes.STRING, unique: true },
email: { type: DataTypes.STRING, unique: true },
password_hash: { type: DataTypes.STRING },
role: { type: DataTypes.STRING, defaultValue: 'user' },
is_active: { type: DataTypes.BOOLEAN, defaultValue: true }
},
{ timestamps: true, freezeTableName: true }
);
const UserProfile = sequelize.define(
'UserProfile',
{
first_name: DataTypes.STRING,
last_name: DataTypes.STRING
},
{ timestamps: true, freezeTableName: true }
);
user.hasOne(user_profile, {foreignKey: 'user_id'})
查询数据,例如:
sequelize.models.user.findAll({
include: [
{
model: sequelize.models.user_profile,
}
]
}).then((user) => {
console.log(user);
}).catch((err) => {
console.log(err);
});