javascript - Mongoose/mongoDB:将返回的文档限制在单个文档位置附近
问题描述
我有以下 mongoose 查询,它返回同一上传者的所有视频,以创建将出现在当前播放视频右侧的视频列表。查询有效并返回视频,但如果上传者有很多视频(有些上传者超过 3,000 个),则会向前端发送太多数据,并且加载的所有视频缩略图会使页面非常慢。为了解决这个问题,我想将可以像这样返回的视频数量限制为 100。
const uploaderVideos = await Video.find(
{ uploader: currentVideo.uploader })
.sort({ uploadDate: -1 })
.lean()
.exec();
通常,您只需添加.limit(100)
到上述代码以限制返回的视频数量。但是,我希望返回的视频能够反映当前播放视频的位置。例如:
如果视频是上传者上传的第一个超过 100 个视频的视频
* The video
- The 99 next videos
如果视频是上传者上传的第 200 个视频,包含 1,300 个视频
- Videos 150-199
* The video (video 200)
- Videos 201-250
如果视频是上传者上传的第 70 个视频,有 100 个视频
- Videos 1-69
* The video (video 70)
- Videos 71-100
如果视频是上传者上传的最后一个视频,包含 300 个视频
- Videos 200-299
* The video (video 300)
我将如何使用猫鼬查询来完成此操作?
解决方案
推荐阅读
- php - 在 WooCommerce 短代码输出顶部添加一个 div
- html - 如果兄弟 div 溢出,CSS 选择器?
- permissions - Keycloak 在资源和权限方面可以扩展多远?
- python - 为每个网格单元创建粒子位置列表
- python - 如何通过 python 程序从存储在 .txt 文件中的 HTML/JS 代码中的单词列表中查找单词?
- facebook - 如何通过 Graph API 为即时游戏上传存档?
- javascript - 仅当按钮较早关闭时 Selenium python 才展开和折叠
- reactjs - 在 useState() 之后 React Native 不更新 UI
- r - ggplot2(R)中的十六进制颜色未正确绘制
- android - 在 android 开关材料中插入文本