【问题标题】:Mongoose query with pagination not working properly带有分页的猫鼬查询无法正常工作
【发布时间】:2021-01-04 15:28:34
【问题描述】:

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

我的查询出了什么问题。 请帮帮我。

【问题讨论】:

  • 在顶部使用$sort$skip$limit并交换$limit$skip

标签: mongodb mongoose


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-08-16
    • 2012-05-14
    • 2018-06-18
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    相关资源
    最近更新 更多