以下是有关猫鼬中间件的链接: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
来做到这一点?
我找到了一种方法,但它似乎是重复的。
方法是使用UPDATE
和RETURNING
。但是我必须到处写这个SQL。
或者,我可以封装一个方法并在需要更新字段时首先调用它?我认为它也是重复的。
那么,对我来说,最好的方法是什么?谢谢。
答案 0 :(得分:1)
正确设计database schema(并确保使用适当的database indexes,并注意database normalization)。然后 explicit 应用程序应发出的一组SQL请求。
您可能会对triggers(看起来类似于您所说的“中间件”)感兴趣。
大多数请求将出现在准备好的语句中,并在应用程序初始化时使用PQprepare。
请注意,MongoDB是一个NoSQL数据库,而PostGreSQL是一个relational数据库,因此它们需要不同的思维方式和方法,并且应使用不同的方式。