医生说:
由于文档未提供任何示例,因此我感到非常困惑。是add将添加Foreignkey到关联的行,而Set会将它的forreignkey设置到关联的行吗?
答案 0 :(得分:2)
让我们看一个 1:M 示例:项目有很多任务。
设置为“ 传递数组中未包含的所有内容都将取消关联”。这意味着,如果您在同一项目上第二次设置任务,则您将替换之前的任务。
使用add时,您不必担心替换旧任务;新老任务都将被添加
project.setTasks([task1, task2]).then(() => {
// saved!
})
// remove the association with task1
project.setTasks([task2]).then(associatedTasks => {
// you will get task2 only
})
副作用是,将空数组传递给set将删除所有任务
// remove 'em all
project.setTasks([]).then(associatedTasks => {
// you will get an empty array
})
// or remove 'em more directly
project.removeTask(task1).then(() => {
// it's gone
})
http://docs.sequelizejs.com/manual/tutorial/associations.html#associating-objects