sql - 根据 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
}}
});
但我认为这既不高效也不好。
解决方案
推荐阅读
- javascript - laravel 中的多种形式
- python-3.x - SyntaxError: 无效语法 | 预言
- c++ - string_view 作为 const 引用的参数
- c# - 如何在 C# 中将整数写入 FileStream?
- javascript - 传递带有 set 参数的函数
- git - 如何将本地文件恢复到 git pull 之前的状态
- c# - Angular 8 dot net core 如何上传多个文件作为复杂对象属性的一部分
- python - 使用 IPython.display 和 model_to_dot 在 Keras 中绘制模型时出现问题
- r - 如何从指数分布创建多列数据表
- python - 如何重新排列三位整数的数字(例如978到这个987)并获得最高整数?