使用 sequelize 创建具有关联层次结构的对象
Posted
技术标签:
【中文标题】使用 sequelize 创建具有关联层次结构的对象【英文标题】:Create objects with association hierarchy using sequelize 【发布时间】:2019-09-09 09:24:13 【问题描述】:使用 nodejs 的 sequelize,创建对象层次结构,在我的例子中是 3 个级别。 Model1 属于 Model2,Model2 属于 Model3。当我调用 create 时,会创建 Model1 和 model 2 对象,但我不知道如何在数据库 (postgres) 中创建 Model3。
我尝试在 Model1 创建中包含 Model2,这解决了创建 Model2 的问题。但是我不知道如何通过model2包含Model3的创建。
Model1-> 有很多 Model2 -> 有很多 Model3
module.exports =
create(req, res)
return Model1.create(
name: req.body.name,
description: req.body.description,
status: 0,
Model2s: req.body.model2s,
,
include: Model2
)
现在正在创建 Model2 行,但我无法创建 Model3 行。 任何帮助表示赞赏。
【问题讨论】:
这是一个无聊的问题还是没有人有答案? 【参考方案1】:显然,答案在 Sequelize Associations 文档页面的末尾,但根据元帅法的要求,就在长文档的末尾。
`return Product.create(
title: 'Chair',
user:
firstName: 'Mick',
lastName: 'Broadstone',
addresses: [
type: 'home',
line1: '100 Main St.',
city: 'Austin',
state: 'TX',
zip: '78704'
]
,
include: [
association: Product.User,
include: [ User.Addresses ]
]
);`
最后的include语句不是模型而是关联:在我的例子中
`association: Model1.hasMany(Model2),
include: [Model2.hasMany(Model3)]`
希望这可以帮助更多人。
【讨论】:
以上是关于使用 sequelize 创建具有关联层次结构的对象的主要内容,如果未能解决你的问题,请参考以下文章
Sequelize - 如何提取具有 1 个关联记录的记录并按关联记录属性排序