Muk*_*kur 11 node.js express sequelize.js
我在节点js中使用sequelize ORM。我加入两个表并得到结果,但结果以表名作为前缀返回。
var Sequelize = require('sequelize');
var sequelize = new Sequelize('test', 'root', '', {
// configuration
}
});
const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.role = require('./../model/definitions/role')(sequelize, Sequelize);
db.admin = require('./../model/definitions/admin')(sequelize, Sequelize);
db.admin.findAll({
include: [{
model: db.role,
where:{status : 'Active'},
}],
raw: true
}).then(function(result) {
console.log(result);
}).catch(function(error) {
console.log(error);
}).done();
Run Code Online (Sandbox Code Playgroud)
现在我得到这个结果:
[{
"id": 36,
"email": "test@gmail.com",
"username": "test",
"status": "Active",
"role.role_id": 1,
"role.role_name": "Admin"
}]
Run Code Online (Sandbox Code Playgroud)
但我需要这个结果:
[{
"id": 36,
"email": "test@gmail.com",
"username": "test",
"status": "Active",
"role_id": 1,
"role_name": "Admin"
}]
Run Code Online (Sandbox Code Playgroud)
因此,如何从列中删除前缀表名称“ role”。我只需要'role_id'或'role_name'就不需要像'role.role_id','role.role_name'这样的类型的数据
这应该工作,
db.admin.findAll({
attributes: ['id', 'username', 'email', 'status', 'role.role_id', 'role.role_name'],
include: [{
model: db.role,
where:{status : 'Active'},
attributes: []
}],
raw: true
})
Run Code Online (Sandbox Code Playgroud)
我在这里找到这个
小智 5
这应该有效
A是一个与使用名为BB的列关联的表,该表的主键与表中的列关联,该列在标准结果集中显示为,但我们希望这两列被称为bIdIdbidAb.idId & Name
A.belongsTo(B);
return await A.findAll({
attributes: [
[Sequelize.col('b.id'), 'Id'],
[Sequelize.col('b.name'), 'Name']
],
raw: true,
where: { /*Some condition*/ },
include: {
model: B,
attributes: [],
required: true
},
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2000 次 |
| 最近记录: |