gpt4 book ai didi

node.js - Sequelize插入连接表(多对多)

转载 作者:搜寻专家 更新时间:2023-10-31 22:23:28 24 4
gpt4 key购买 nike

我在 sequelize 中设置了两个具有多对多关系的模型。 Sequelize 正确创建了连接表,但我无法插入其中。我一直在仔细研究文档的这一部分:http://docs.sequelizejs.com/en/latest/docs/associations/#creating-with-associations但根据他们的例子,我什么也做不了。不幸的是,他们没有多对多的例子。

接下来,我尝试使用 setModel 函数,这在 sequelize 代码的深处产生了一个我无法理解的错误。该代码如下。

我的两个模型是 Coin 和 Ledger。

Ledger.findById(22).then(ledger=>{
var c1 = Coin.findById(1);
var c2 = Coin.findById(2);
ledger.setCoins([c1,c2]).then(sc=>{
console.log(sc);
});
});

我的模型使用以下代码相互关联:

Ledger.belongsToMany(Coin,{ through: 'ledger_coin'});
Coin.belongsToMany(Ledger, {through: 'ledger_coin'});

任何人都可以给我一些建议或指出我使用 get 函数或关联选项写入连接表的正确轨道吗?我可以编写一个自定义函数,但我知道一定有办法做到这一点。

最佳答案

好吧,我用上面的 setCoins 解决了这个问题。显然它需要 ID 号而不是对象,所以这是有效的:

Ledger.findById(22).then(ledger=>{
ledger.setCoins([1,2]).then(sc=>{
console.log(sc);
});
});

不过,我仍然想更好地理解包含和关联。

关于node.js - Sequelize插入连接表(多对多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882288/

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