使用 nodejs 的 sequelize 更新多对多连接 table
Updating a many to many join table using sequelize for nodejs
我有一个产品 table 和一个类别 table。一个产品可以有很多类别,一个类别可以有很多产品,因此我有一个 ProductsCategories table 来处理多对多连接。
在下面的示例中,我试图将我的一个产品(ID 为 1)与 3 个不同的类别(ID 为 1、2 和 3)相关联。我知道下面的代码片段中有问题,因为我收到一条丑陋的 SQL 错误消息,表明我正在尝试将对象插入 ProductsCategories 连接 table。我不知道如何修复下面的代码片段,或者我是否在正确的轨道上。对于这种事情,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
returns 一个数组。通过执行 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]]);
}
});
我有一个产品 table 和一个类别 table。一个产品可以有很多类别,一个类别可以有很多产品,因此我有一个 ProductsCategories table 来处理多对多连接。
在下面的示例中,我试图将我的一个产品(ID 为 1)与 3 个不同的类别(ID 为 1、2 和 3)相关联。我知道下面的代码片段中有问题,因为我收到一条丑陋的 SQL 错误消息,表明我正在尝试将对象插入 ProductsCategories 连接 table。我不知道如何修复下面的代码片段,或者我是否在正确的轨道上。对于这种事情,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
returns 一个数组。通过执行 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]]);
}
});