Sequelize. JS Возвращать следующую самую раннюю запись по дате? - PullRequest
0 голосов
/ 27 апреля 2020

Я столкнулся с проблемой, когда я хочу запросить мою базу данных, используя sequelize. js чтобы вернуть, учитывая созданный один экземпляр, экземпляр со следующим самым первым созданным моментом. например: если у меня есть 3 экземпляра, хранящихся в базе данных, созданной в понедельник, вторник и среду. Учитывая идентификатор или созданный для экземпляра вторника, я хочу вернуть экземпляр понедельника. В настоящее время я извлекаю все экземпляры и сортирую по дате, но это не совсем эффективное решение.

Это мой первый вопрос о переполнении стека, поэтому я не уверен, что у меня есть формат для того, чтобы задавать вопросы .

1 Ответ

1 голос
/ 28 апреля 2020
  1. Получение экземпляра по идентификатору
  2. Выбор следующего самого раннего экземпляра, передающего созданный для экземпляра:
  const { Op } = require('sequelize')
...
  const instance = await await db.yourModel.findById(id)
  const nextEarliestInstance = await db.yourModel.findOne({
    where: {
      createdAt: {
        [Op.lt]: instance.createdAt
      }
    },
    order: [['createdAt', 'DESC']]
  })
...