Sequelize-关联查询中
本文主要介绍的内容为一对多的关系如何进行绑定与查询,首先添加一对多的数据,添加 book 表即可:
INSERT INTO `demo`.`book` (`id`, `name`, `price`, `uId`) VALUES (4, '玩转.net', 66, 1);
INSERT INTO `demo`.`book` (`id`, `name`, `price`, `uId`) VALUES (5, '玩转Less', 66, 4);
INSERT INTO `demo`.`book` (`id`, `name`, `price`, `uId`) VALUES (6, '玩转Sass', 66, 5);
建立查询关系
官方文档:https://sequelize.org/v5/class/lib/associations/has-one.js~HasOne.html
// 4.建立查询关系
// 一个人拥有多本书
User.hasMany(Book, {
foreignKey: 'uId',
sourceKey: 'id'
});
// 一本书属于一个人
Book.belongsTo(User, {
foreignKey: 'uId',
sourceKey: 'id'
});
let user = await User.findOne({
where: {
id: 1
},
include: {
model: Book
}
});
console.log(user.dataValues.books.map(b => b.dataValues));
let book = await Book.findOne({
where: {
id: 1
},
include: {
model: User
}
});
console.log(book.dataValues.user.dataValues);