Sequelize-关联查询中

本文主要介绍的内容为一对多的关系如何进行绑定与查询,首先添加一对多的数据,添加 book 表即可:

image-20220123131148783

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

image-20220123131529748

// 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));

image-20220123131831162

let book = await Book.findOne({
    where: {
        id: 1
    },
    include: {
        model: User
    }
});

console.log(book.dataValues.user.dataValues);

image-20220123132022615

posted @   BNTang  阅读(161)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示