我正在尝试学习sequelize,但是在创建n:m对象时遇到了麻烦。到目前为止,我有2个模型可以创建3个表(Store,Product,StoreProducts)和下面的模型:
模型/ Store.js
module.activate = function(settings){
var self = this;
this.myMap = ko.observable({
lat: 34.1,
lng: 31.6});
this.compositionComplete = function(child, parent, settings){
};
};
return module;
模型/ Product.js
module.exports = (sequelize, DataTypes) => {
return Store = sequelize.define('Store', {
name: {
type: DataTypes.STRING,
},
address: {
type: DataTypes.STRING,
}
});
};
模型/ Index.js
module.exports = function(sequelize, DataTypes) {
return Product = sequelize.define('Product', {
name: {
type: DataTypes.STRING,
}
});
};
我想“添加”以下json对象。
models.Store.belongsToMany(models.Products, {through: 'StoreProducts', foreignKey: 'storeId'});
models.Products.belongsToMany(models.Store, {through: 'StoreProducts', foreignKey: 'productId'});
寻找任何方向,我已经尝试了大约10条路线,我能够得到的最好的是创建的商店和产品记录,但没有关系。
答案 0 :(得分:4)
查看nested creation(该功能尚未记录)
Store.create({
name:'corner store',
address: '123 Main Street',
products: [
{ name: 'string beans' }, { name: 'coffee' }, { name: 'milk' }
]
}, {
include: [Product]
});
这将创建商店和产品,并将两者联系起来。
请注意,这仅适用于创建 - 您无法使用它将新产品与现有商店等相关联。
Store.find().then(function (store) {
store.createProduct({ name: 'hats' });
});