据我所知,使用Sequelizejs,似乎没有办法在保存对象本身时保存对象关联.
例如,我有一个可以有1个或多个phoneNumber的联系人.目前我对这个协会有类似的东西:
global.db.Contact.hasMany(global.db.PhoneNumber, {as: 'phoneNumbers'});
Run Code Online (Sandbox Code Playgroud)
使用休息端点我想发布一个新的联系人对象(带有任何提供的电话号码)并将其保存到数据库中.我的请求对象看起来像这样:
{
firstName: "john",
lastName: "Doe",
phoneNumbers: [
{ number: "555-555-5555", type: "home" }
]
}
Run Code Online (Sandbox Code Playgroud)
现在我传递这个对象来构建:
var contact = Contact.build(req.body);
Run Code Online (Sandbox Code Playgroud)
然后调用save(我知道我可以使用create而不是build/save但是我们在save中有自定义逻辑来跟踪修改后的数据以及哪个用户进行了修改)
contact.save();
Run Code Online (Sandbox Code Playgroud)
这引发了以下错误,这是有道理的.
column "phoneNumbers" of relation "Contacts" does not exist
Run Code Online (Sandbox Code Playgroud)
sql调用正在尝试设置不存在的列"phoneNumbers"的值.我显然不希望它这样做...我真的希望用我正在创建的联系人的ID批量创建阵列中的每个phoneNumber.
我发现的唯一例子是:https://gist.github.com/sdepold/3040391我真的不想这样做......因为我来自休息端点,我想要一种方法一般地做这个操作(我会有很多带关联的模型).我还需要能够批量执行这些操作(用于从其他源导入联系人),所以我希望它是最少量的sql调用.有没有人找到一个很好的方法来做到这一点?
sequelize.js ×1