如何更新sequelize模型的字段“updated_at”而不修改任何属性

nai*_*ike 6 postgresql timestamp node.js sequelize.js

我正在使用带有 PostgreSQL 的sequelize 2.0.0。 我想知道是否可以用一种方法更新模型的“updated_at”字段。如果是,我怎样才能实现这一目标?

例如,在其他框架(如 Laravel)中,您可以使用 model.touch() 来自动更新模型的“updated_at”。

我已经尝试使用 model.save() 但正如续集文档所说,在没有属性的情况下调用此方法不会执行任何操作。另外,在文档中,我没有找到任何可以让我简单地做我需要做的事情的东西。

预先感谢您的帮助。

编辑:举一个我想要实现的目标的例子,我已经有了一个模型的实例: Model.findById(1).then(function(myInstance){ [...] myInstance.update() //here, I didn't change any attributes of myInstance and I would like to update the field udpated_at without doing another query. [...] }): 问题是:如何使用一种方法更新前一个实例的字段 Updated_at ?

Eva*_*oky 5

要更新实例值,可以使用instance.set(key, value, [options])

myInstance.set('updatedAt', new Date());
myInstance.save().then(function() {
  // my nice callback stuff
});
Run Code Online (Sandbox Code Playgroud)

如果您没有实例,sequelize 文档有一个很好的执行更新查询的示例

Post.update({
  updatedAt: null,
}, {
  where: {
    deletedAt: {
      $ne: null
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 提供的实例方法似乎不适合我。 (3认同)