gpt4 book ai didi

postgresql - 使用 Sequelize 批量创建模型实例时,如何设置外键列?

转载 作者:行者123 更新时间:2023-12-03 22:41:26 26 4
gpt4 key购买 nike

我的 Polls 模型和 Options 模型之间存在一对多关系,其中一个 Poll 可以有多个选项。

该关联设置为使 Options 有一个 pollId 列,该列需要插入来自 poll 模型的正确 id。

var Options = sequelize.define('Options', {
name: {
type: DataTypes.STRING,
allowNull: false
},
votes: {
type: DataTypes.INTEGER,
allowNull: false
}
}, {
classMethods: {
associate: function(models) {
// associations can be defined here
Options.belongsTo(models.Polls, {
foreignKey: 'pollId',
onDelete: 'CASCADE'
});
}
}
});

我正在使用批量创建一次创建多个选项,就像这样
models.Users.findOne({
where: {uuid: user_id}
}).then((user) => {
models.Polls.create({
createdBy: user.get('name'),
userId: user_id,
voter_ids: []
}).then((poll) => {
models.Options.bulkCreate({

})
})
});

不确定如何以有意义的方式将 pollId 选项添加到每个条目以反射(reflect)相同的轮询模型实例。

最佳答案

如果您想使用 bulkCreate(),您必须手动将 pollId 添加到选项中。您可以轻松做到:{pollId: poll.id}
但还有一个更好的选择:
您可以发出单个 create(),包括投票和选项。只需将选项添加到投票中,并使用 includecreate() 选项指定您也想创建这些选项,请参阅:http://docs.sequelizejs.com/manual/tutorial/associations.html#creating-elements-of-a-hasmany-or-belongstomany-association

models.Polls.create({
createdBy: user.get('name'),
userId: user_id,
voter_ids: [],
options: [
{your first option},
{another option}
]
}, {
include: [ models.Options ]
}
)

关于postgresql - 使用 Sequelize 批量创建模型实例时,如何设置外键列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com