Postgres中的功能与猫鼬中间件有什么相同?

时间:2019-01-03 08:15:33

标签: postgresql

以下是有关猫鼬中间件的链接: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来做到这一点?

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

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

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

那么,对我来说,最好的方法是什么?谢谢。

1 个答案:

答案 0 :(得分:1)

正确设计database schema(并确保使用适当的database indexes,并注意database normalization)。然后 explicit 应用程序应发出的一组SQL请求。

您可能会对triggers(看起来类似于您所说的“中间件”)感兴趣。

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

请注意,MongoDB是一个NoSQL数据库,而PostGreSQL是一个relational数据库,因此它们需要不同的思维方式和方法,并且应使用不同的方式。