mongodb - 带有分页的猫鼬查询无法正常工作
问题描述
Mongo 版本 - 基于我最后一个问题的 v3.4 -在 mongoose 中查找条件
我的查询适用于第 1 页。但在第二页上它给出了空结果。
const casestudies = await CaseStudy.aggregate([{
$lookup: {
from: "categories",
localField: "category_id",
foreignField: "_id",
as: "category_id"
}
},
{
$project: {
"updated_at": 0,
"category_id.updated_at": 0
}
},
{
$lookup: {
from: "bookmarks",
localField: "_id",
foreignField: "type",
as: "bookmarks"
}
},
{
$addFields: {
bookmarks: {
$filter: {
input: "$bookmarks",
cond: { $eq: ["$$this.user_id", req.user ? objectId(req.user._id) : ''] }
}
}
}
},
{ $sort: { "publish_date": -1 } },
{ $limit: pageSize },
{ $skip: (page - 1) * pageSize }
]);
我的查询有什么问题。请帮我。
解决方案
所以正如@Ashh 问题所建议的那样,按sort
, $skip
, $limit
. 所以正确的查询应该是。
{ $sort: { "publish_date": -1 } },
{ $skip: (page - 1) * pageSize },
{ $limit: pageSize }
推荐阅读
- ios - 无法在 ViewController 之间移动
- java - 循环中的加密和解密在 Java 中的第一次迭代后给出更快的结果
- html - @media print page size=A4 正在生成一个稍大的页面,并且边框正在渗入上一页
- node.js - Nodejs中多个客户端到单个服务器之间的连接
- sql-server - 不支持 KBMMW ORM MetaExists(mwmdtTable)
- laravel - "" 目录不存在 - php artisan into do droplet 由 forge 创建
- hibernate - 将 Hibernate SELECT 语句记录到它们自己的日志文件中
- reactjs - React 内部的工作循环持续多长时间?
- java - 将 2 小数转换为整数
- matlab - Bin交互频率