mysql - 如何在 Sequelize 中获取特定案例的关联元素
问题描述
我有用户、项目和任务的模型
用户和任务有关联多对多
Projects and Tasks 有关联一对多(每个项目有很多任务)
在接收指定用户的任务时,我想为每个任务获取关联的项目。
任何人都可以帮助找到解决方案。
我的代码如下:
// receiving of user from database
const user = await User.findOne({where: {id: request.userId}})
// receiving of tasks related to user
const tasks = await user.getTasks(
// here i've tried to add following code, but it does not works
include: { model: Project, as: 'project' }
)
response.status(201).json( tasks )
任何帮助将不胜感激
解决方案
在 Sequelize 中,当处理“许多”关联时,可能会有所不同。你说你已经有了这个关联:
项目模型
Project.hasMany(Task)
现在您需要在 Task.model 中实现另一种方式:
Task.belongsTo(Project);
在Sequelize 文档中,您会发现:
要创建一对多关系,需要同时使用 hasMany 和 belongsTo 关联;
推荐阅读
- angular - 设置模拟服务并使用 jasmine/karma 和 Angular 调用它时出现问题
- java - 基于不同条件和业务规则的Java大对象列表
- linux - 找不到框架“Microsoft.AspNetCore.App”,版本“5.0.0”。当它安装并在 $PATH 中时
- swift - 如何限制选择器视图中显示的行数?
- javascript - WebRTC,getDisplayMedia() 不会从远程流中捕获声音
- c++ - 对 boost::serialization 的未定义引用
- vue.js - 如何在 Vue 3 组件中使用 Vuex 4 状态数据作为另一个调度的有效负载?
- android - 在 Android 中使用 Kotlin Coroutines 保存文件显示不适当的阻塞方法调用
- javascript - 使用给定条件验证字符串
- javascript - React 中的 Axios/Backend 会在一段时间后停止工作且没有错误