Что такое та же функция в postgres, что и в промежуточном программном обеспечении mongoose? - PullRequest
0 голосов
/ 03 января 2019

Вот ссылка о промежуточном программном обеспечении mongoose: https://mongoosejs.com/docs/middleware.html

В моем случае я хочу обновить некоторые поля после запроса SQL из базы данных, когда пользователь клиента отправляет запрос для вызова моего API. А поля, которые необходимо обновить, основаны на Date, поэтому они будут часто обновляться.

Обновления этих полей при инициализации моего приложения недостаточно.

С мангустом я могу использовать следующий способ:

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

Как я могу сделать это, используя postgresql?

Я нахожу способ, но он кажется дублированным.

Путь использует UPDATE и RETURNING. Но я должен писать этот SQL везде.

Или я могу инкапсулировать метод и сначала вызывать его, когда нужно обновить поля? Я думаю, что это также дублируется.

Итак, каков наилучший способ для моего случая? спасибо.

1 Ответ

0 голосов
/ 03 января 2019

Правильно спроектируйте схему базы данных (и убедитесь, что у вас есть соответствующие индексы базы данных , и помните о нормализации базы данных ). Затем явный набор SQL-запросов, которые ваше приложение должно сделать.

Вас могут заинтересовать триггеры (что похоже на то, что вы называете "промежуточным программным обеспечением")

Большинство запросов были бы в подготовленных утверждениях, используя PQprepare при инициализации вашего приложения.

Помните, что MongoDB - это NoSQL база данных, но PostGreSQL - это реляционная база данных, поэтому они требуют разных подходов и подходов и должны использоваться по-разному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...