续集更新或创建包含的关联

Posted

技术标签:

【中文标题】续集更新或创建包含的关联【英文标题】:Sequelize update or create included association 【发布时间】:2019-03-04 15:10:06 【问题描述】:

有续集hasOne 关联:

const User = sequelize.define('user', /* ... */)
const Project = sequelize.define('project', /* ... */)

// One-way association
User.hasOne(Project)

并且用户实例已经存在。我们如何添加一个新的Project 并将其连接到User 实例?

首先,我们需要找到User

const user = await models.users.findOne(
    where:  id: 1 ,
    include: models.projects
);

接下来我们要做什么?如果user.projectnull 怎么办?

【问题讨论】:

【参考方案1】:

这个呢?

Project.belongsTo(User)

http://docs.sequelizejs.com/class/lib/associations/belongs-to.js~BelongsTo.html

【讨论】:

我可以使用belongsTo,但问题是当Project 尚不存在时如何以正确的方式创建。我解决了这个问题,我只需要知道最佳实践。

以上是关于续集更新或创建包含的关联的主要内容,如果未能解决你的问题,请参考以下文章

用包含关联续集 findOrCreate

续集包含关联不起作用(graphql)

续集限制包括关联

如何在node.js中拥有多个关联/条件/包含在findAll上的续集

“用户未关联到提要!”续集

续集在关联模型上的位置