Sequelize:构build和保存包含数组的对象
在Sequelize.js中构build和保存时,是否可以指定一个数组,或者必须在一个单独的sequelize构build中完成?
模型定义:
var Tag = sequelize.define('Tag', { name: Sequelize.STRING }); var Event = sequelize.define('Event', { name: Sequelize.STRING, }); Event.hasMany(Tag, {as: 'tags', through: 'event_tags', foreignKey: 'eventId'}); Tag.hasMany(Event, {as: 'events', through: 'event_tags', foreignKey: 'tagId'});
我问的是如果这是可能的:
Event.build({ name: 'blah', tags: [{id: 53, name: someTag}, {id: 54, name: otherTag}] }).save().success(function(event) {...});
如果这是不可能的,我必须为每个eventTag关联做一个构build?
Event.build({ name: 'blah', }).save().success(function(event) { // ...How? because the association (table event_tags) is not an entity // from which I could run .build() // Maybe using push? });
从sequelize文档: Sequelize关联对象
Event.hasMany(Tag) Tag.hasMany(Event) Event.create()... Tag.create()... Tag.create()... // save them... and then: event.setTags([tag1, tag2]).success(function() { // saved! })
其中'create()'结合了build()和save()。