带有分页的猫鼬查询无法正常工作

时间:2021-01-04 05:59:18

标签: mongodb mongoose

Mongo 版本 - v3.4 基于我的最后一个问题 - lookup with condition in 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 }
        ]);

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

1 个答案:

答案 0 :(得分:0)

按照@Ashh 问题的建议,按照 sort$skip$limit 的顺序。 所以正确的查询应该是。

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