创建具有关联但没有指定id的新模型

时间:2015-11-29 12:45:20

标签: sequelize.js

我可以创建城市模型已存在的用户模型吗?

例如:

var User = this.sequelize.define('User', {name: String})
var City = this.sequelize.define('City', {name: String})

User.belongsTo(City);

现在假设我已经在数据库中有一条记录,例如:

| Id | Name   |
|----|--------|
| 1  | York   |
| 2  | London |

我不会创建住在伦敦的新用户。

最好的方法是什么?

我试过了:

User.create({name: 'John', City: 'London'}, {include: [City]})

但是出现了一个错误:cityId没有默认值。

我试图避免首先检索cityId。

由于

1 个答案:

答案 0 :(得分:1)

自动定义的setXXX函数是执行此操作的最佳方式:

User.create({ user_field_1: 'foo', user_field_2: 'bar' })
.then(function(new_user) {
  new_user.setCity(someCityInstance);
});

如果您没有实例但知道要关联的City实例的密钥,那么在创建时直接指定它可能有效:

User.create({ user_field_1: 'foo', user_field_2: 'bar', city_id: 'xyz' });