如何使用omitNull标志在Sequelize中插入空值?

时间:2013-07-29 13:01:42

标签: node.js sequelize.js

如果我没有在模型的create方法中定义它们,我有一个Sequelize实例,其标志为omitNull,用于插入在DB中定义的de defaultValues。像这样:

var sequelize = new Sequelize('db', 'user', 'pw', {
  omitNull: true
})

但是如果我将它们定义为null,我想在其他模型中插入空值。像:

SomeModel.create({some_property: null});

有没有办法为模型的某些属性定义omitNull属性?

3 个答案:

答案 0 :(得分:5)

使用omitNull = true选项时,有一种方法可以强制sequelize将属性设置为null。

做这样的事情:

SomeModel.some_property = null;
SomeModel.save(['some_property']);

这将强制sequelize为some_property创建带有NULL的更新/插入SQL。

我希望它有所帮助。

答案 1 :(得分:0)

如果您正在使用sequelize< v2.0,一个更黑客的替代解决方案是

sequelize.options.omitNull = false;

SomeModel.some_property = null;
SomeModel.save();

sequelize.options.omitNull = true;

答案 2 :(得分:0)

尽管这个问题已经存在很长时间了,但也许有人需要这个..

[('1984-85', 'Year'), ('Chicago', 'Team'), ('82', 'GP'), ('82', 'GS'), ('38.3', 'MPG'), ('.515', 'FG%'), ('.173', '3P%'), ('.845', 'FT%'), ('6.5', 'RPG'), ('5.9', 'APG'), ('2.4', 'SPG'), ('.8', 'BPG'), ('28.2', 'PPG')]

  await User.update({
    someData: null
  },{
    omitNull: false,
    where: id,
  })