首页 文章

将插入插入到连接表中(多对多)

提问于
浏览
6

我在sequelize中设置了两个具有多对多关系的模型 . Sequelize正确地创建了连接表,但是我已经仔细阅读了文档的这一部分:http://docs.sequelizejs.com/en/latest/docs/associations/#creating-with-associations但不幸的是我可以't get anything to work based on their examples. They don' t有一个多对多的例子 .

接下来我尝试使用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 函数或关联选项写入连接表的正确轨道?我可以写一个自定义函数,但我知道必须有办法做到这一点 .

1 回答

  • 7

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

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

    不过,我仍然希望更好地理解包含和关联 .

相关问题