javascript - sequelize 查找关联的数据
问题描述
我有 2 个模型Prophet和Task,它们具有m:n关系:
先知
const prophet = sequelize.define('prophets', {
name: {
type: Sequelize.STRING,
primaryKey: true,
unique: true
}
});
prophet.relationship = function(task) {
prophet.belongsToMany(task, {
through: 'prophetTasks',
as: 'tasks',
foreignKey: 'prophetName'
});
};
任务
const task = sequelize.define('tasks', {
name: {
type: Sequelize.STRING,
primaryKey: true,
unique: true
}
});
task.relationship = function(prophet) {
task.belongsToMany(prophet, {
through: 'prophetTasks',
as: 'prophets',
foreignKey: 'taskName'
});
};
已编辑: 我的问题是有时我必须更新可能会删除与任务的某些关系的先知,但我不知道如何删除与任何先知没有更多关系的任务。
我相信我应该找到所有不再属于propertyTasks 表中的任务,但我不知道如何用sequelize 查询它
解决方案
您可以使用
ON DELETE CASCADE
因此,每当删除该行时,将删除包含它作为外键的数据。
推荐阅读
- riscv - 在没有指令缓存的情况下,取指令和内存访问如何协同工作?
- amazon-web-services - 找出 Aws cloudfomration 正在创建堆栈或更新堆栈的条件
- javascript - 数据表中出现“确认”错误。我应该如何解决它?
- gtk - 如何在 vala 中创建通知类
- python - 如何通过存储在另一个列表中的正则表达式模式过滤列表并计算正则表达式匹配数的统计信息?
- prolog - 查找列表中出现的谓词
- c# - 为什么通过统一字符串定义值的函数会指示错误“索引超出范围。”?
- java - 带 Angular 的基本 Spring Boot
- c# - 如何使换行符与普通的 C# 字符串一起工作?
- git - git fetch origin --all 选项来获取所有远程分支?