首页 > 解决方案 > 根据 createdAt 在 Sequelize 中选择下一条和上一条记录

问题描述

我想要什么:根据 ID(UUID)从数据库中获取一条记录,并检索下一条和上一条记录

协会posts N:M categories, posts 1:N comments, posts N:1 users, posts N:M tags, posts 1:N post_views

当前解决方案:

const post = await PostModel.findByPk(id, {
    include: [
      { model: CategoryModel, attributes: ['title'] },
      { model: TagModel },
      { model: CommentModel, include: { model: UserModel } },
      { model: PostViewModel },
      { model: UserModel, attributes: ['fullname', 'id', 'avatar'] }
    ]
  });
const nextPost = await PostModel.findOne({
  where: { createdAt: {
    [Op.gt]: post.createdAt
  }}
const prevPost = await PostModel.findOne({
  where: { createdAt: {
    [Op.lt]: post.createdAt
  }}

});

但我认为这既不高效也不好。

标签: sqlnode.jspostgresqlexpresssequelize.js

解决方案


推荐阅读