Node.js 如何在异议模型中的$afterUpdate挂钩中获取整个更新条目?

Node.js 如何在异议模型中的$afterUpdate挂钩中获取整个更新条目?,node.js,postgresql,objection.js,Node.js,Postgresql,Objection.js,我使用Objective.js作为一个简单的Rainsion应用程序的ORM。我需要能够在更新较低级别的表entires时动态地更新和输入一个表。为此,我需要更新的整个条目,以便使用该数据正确更新动态更新的条目 我正在使用$afterUpdate钩子来创建较低级别的表条目。我遇到的问题是,当我在$afterUpdate钩子函数中记录此时,它只包含我要更新的条目部分的属性。我怎样才能得到完整的条目?我确信我可以通过对数据库运行额外的查询来获得记录,但我希望可以避免这种情况。如果您能提供任何帮助,我

我使用Objective.js作为一个简单的Rainsion应用程序的ORM。我需要能够在更新较低级别的表entires时动态地更新和输入一个表。为此,我需要更新的整个条目,以便使用该数据正确更新动态更新的条目


我正在使用
$afterUpdate
钩子来创建较低级别的表条目。我遇到的问题是,当我在
$afterUpdate
钩子函数中记录
时,它只包含我要更新的条目部分的属性。我怎样才能得到完整的条目?我确信我可以通过对数据库运行额外的查询来获得记录,但我希望可以避免这种情况。如果您能提供任何帮助,我们将不胜感激。

我想,从现在起,您只需通过额外的查询即可获得整个模型。 如果使用实例查询($query)执行更新,则可以从
options.old
获取其他属性

查询:

const user = await User.query().findById(userId);
await user.$query()
          .patch({ name: 'Tom Jane' })
钩子:


补丁

如果不需要在钩子中执行此操作,则可能需要使用与
first()链接的
patch
函数。返回('*')
以在单个查询中获取整个模型,这比postgreSQL中的
patchAndFetchById
更有效。如文件中所述

因为PostgreSQL(和其他一些)支持返回(“*”)链接,所以您实际上可以插入一行,或者更新/修补/删除现有行,并在单个查询中将受影响的行作为模型实例接收,从而提高效率。请参阅示例以了解更多信息

参考资料:


我认为,到目前为止,您只能通过额外的查询获得整个模型。 如果使用实例查询($query)执行更新,则可以从
options.old
获取其他属性

查询:

const user = await User.query().findById(userId);
await user.$query()
          .patch({ name: 'Tom Jane' })
钩子:


补丁

如果不需要在钩子中执行此操作,则可能需要使用与
first()链接的
patch
函数。返回('*')
以在单个查询中获取整个模型,这比postgreSQL中的
patchAndFetchById
更有效。如文件中所述

因为PostgreSQL(和其他一些)支持返回(“*”)链接,所以您实际上可以插入一行,或者更新/修补/删除现有行,并在单个查询中将受影响的行作为模型实例接收,从而提高效率。请参阅示例以了解更多信息

参考资料:


谢谢,这很有效。使用returning()方法对我很有效。谢谢,这很有效。使用returning()方法对我很有效。
const jennifer = await Person
  .query()
  .patch({firstName: 'Jenn', lastName: 'Lawrence'})
  .where('id', 1234)
  .returning('*')
  .first();