簡體   English   中英

使用nodejs的sequelize更新多對多連接表

[英]Updating a many to many join table using sequelize for nodejs

我有一個Products表和Categories表。 單個產品可以有許多類別,單個類別可以有許多產品,因此我有一個ProductsCategories表來處理多對多連接。

在下面的示例中,我嘗試將我的一個產品(ID為1)與3個不同的類別(ID為1,2和3)相關聯。 我知道下面的代碼片段中有些內容已關閉,因為我收到一條丑陋的SQL錯誤消息,指示我正在嘗試將對象插入到ProductsCategories連接表中。 我不知道如何修復下面的片段,或者我是否在這里正確的軌道。 對於這種事情,Sequelize文檔非常稀疏。

models.Product.find({ where: {id: 1} }).on('success', function(product) {
  models.Category.findAll({where: {id: [1,2,3]}}).on('success', function(category){
    product.setCategories([category]);
  });      
});

我非常感謝你們的幫助,謝謝。 另外,我正在使用Postgres,不確定這是否重要。

models.Category.findAll返回一個數組。 通過做setCategories([category]); 您將該數組包裝在一個數組中。 嘗試將其更改為setCategories(category); 代替

我覺得你很親密 我的一些代碼遇到了類似的問題。 嘗試迭代找到的類別,然后添加它們。 我認為這可能會成功。

models.Category.findAll({where: {id: [1,2,3]}}).on('success', function(category){
            for(var i=0; i<category.length; i++){
                product.setCategories([category[i]]);
            }
      });  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM