首页 > 解决方案 > postgres 中与 mongoose 中间件有什么相同的功能?

问题描述

这是关于猫鼬中间件的链接:https ://mongoosejs.com/docs/middleware.html

我的情况是,当客户端用户发送请求以调用我的 api 时,我想在数据库的 SQL 查询之后更新一些字段。并且需要更新的字段是基于 的Date,所以会经常更新。

在我的应用程序的初始化中更新这些字段是不够的。

使用猫鼬,我可以使用以下方式:

schema.post('findOne', function(doc, next) {
  const doc = updateFields(doc);
  doc
    .save()
    .then(() => next())
    .catch(next);
})

我怎样才能做到这一点postgresql

我找到了一种方法,但它似乎重复了。

方法是使用UPDATEand RETURNING。但是我必须到处写这个SQL。

或者,我可以封装一个方法并在需要更新字段时首先调用它?我认为它也是重复的。

那么,我的情况最好的方法是什么?谢谢。

标签: postgresql

解决方案


正确设计您的数据库模式(并确保具有适当的数据库索引,并注意数据库规范化)。然后明确您的应用程序应该发出的一组 SQL 请求。

您可能对触发器感兴趣(看起来类似于您所说的“中间件”)

大多数请求将在准备好的语句中,在应用程序的初始化中使用PQprepare

请注意,MongoDB 是NoSQL数据库,但PostGreSQL关系数据库,因此它们需要不同的思维方式和方法,并且应该以不同的方式使用。


推荐阅读