首页 > 解决方案 > 带有分页的猫鼬查询无法正常工作

问题描述

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 }
        ]);

我的查询有什么问题。请帮我。

标签: mongodbmongoose

解决方案


所以正如@Ashh 问题所建议的那样,按sort, $skip, $limit. 所以正确的查询应该是。

{ $sort: { "publish_date": -1 } },
{ $skip: (page - 1) * pageSize },
{ $limit: pageSize }

推荐阅读