本文介绍了如何在Sequelize ORM中获取不带前缀表名称的联接数据结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在节点js中使用sequelize ORM.我加入两个表并得到结果,但结果以表名作为前缀返回.
I am using sequelize ORM in node js. I am join two table and get result but that result return with table name as prefix.
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();
现在我得到了这个结果:
Now I am getting this result:
[{
"id": 36,
"email": "test@gmail.com",
"username": "test",
"status": "Active",
"role.role_id": 1,
"role.role_name": "Admin"
}]
但是我需要这个结果:
[{
"id": 36,
"email": "test@gmail.com",
"username": "test",
"status": "Active",
"role_id": 1,
"role_name": "Admin"
}]
因此,如何从列中删除前缀表名称"role".我只需要'role_id'或'role_name'不需要这种类型的数据,例如'role.role_id','role.role_name'
so, how to remove prefix table name 'role' from column.I have only need 'role_id' or 'role_name' not need this type data like '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
})
我在此处
这篇关于如何在Sequelize ORM中获取不带前缀表名称的联接数据结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!