使用 json 创建 n:m 个对象并续集?
Create n:m objects using json and sequelize?
我正在尝试学习 sequelize,但无法创建 n:m 对象。到目前为止,我有创建 3 个表(Store、Product、StoreProducts)的 2 个模型和以下模型:
models/Store.js
module.exports = (sequelize, DataTypes) => {
return Store = sequelize.define('Store', {
name: {
type: DataTypes.STRING,
},
address: {
type: DataTypes.STRING,
}
});
};
models/Product.js
module.exports = function(sequelize, DataTypes) {
return Product = sequelize.define('Product', {
name: {
type: DataTypes.STRING,
}
});
};
models/Index.js
models.Store.belongsToMany(models.Products, {through: 'StoreProducts', foreignKey: 'storeId'});
models.Products.belongsToMany(models.Store, {through: 'StoreProducts', foreignKey: 'productId'});
我想"add"以下json对象。
var store = {
name:'corner store',
address: '123 Main Street',
products: [
'string beans', 'coffee', 'milk'
]
};
寻找任何方向,我已经尝试了大约 10 条路线,我能得到的最好的是创建了商店和产品记录,但没有任何关系。
看看 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' });
});
我正在尝试学习 sequelize,但无法创建 n:m 对象。到目前为止,我有创建 3 个表(Store、Product、StoreProducts)的 2 个模型和以下模型:
models/Store.js
module.exports = (sequelize, DataTypes) => {
return Store = sequelize.define('Store', {
name: {
type: DataTypes.STRING,
},
address: {
type: DataTypes.STRING,
}
});
};
models/Product.js
module.exports = function(sequelize, DataTypes) {
return Product = sequelize.define('Product', {
name: {
type: DataTypes.STRING,
}
});
};
models/Index.js
models.Store.belongsToMany(models.Products, {through: 'StoreProducts', foreignKey: 'storeId'});
models.Products.belongsToMany(models.Store, {through: 'StoreProducts', foreignKey: 'productId'});
我想"add"以下json对象。
var store = {
name:'corner store',
address: '123 Main Street',
products: [
'string beans', 'coffee', 'milk'
]
};
寻找任何方向,我已经尝试了大约 10 条路线,我能得到的最好的是创建了商店和产品记录,但没有任何关系。
看看 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' });
});