Mongodb 无法对我的集合执行某些异步mongoose查询操作

Mongodb 无法对我的集合执行某些异步mongoose查询操作,mongodb,asynchronous,mongoose,Mongodb,Asynchronous,Mongoose,我的问题是,我无法在不调整模型或控制器的情况下对应用程序分页。要分页,我需要执行与Mongoose集合相关的排序跳过限制操作User.findById()函数只返回一个值,因此不可能在它之后链接这些操作。我需要整体执行操作,我能做什么 我尝试在新阵列上执行,我推送了其中的每个用户,但mongoose操作在该阵列上不起作用 Camp.findById(req.params.campId, async (err, camp) => { if(err) return res.re

我的问题是,我无法在不调整模型或控制器的情况下对应用程序分页。要分页,我需要执行与Mongoose集合相关的排序跳过限制操作
User.findById()
函数只返回一个值,因此不可能在它之后链接这些操作。我需要整体执行操作,我能做什么

我尝试在新阵列上执行,我推送了其中的每个用户,但mongoose操作在该阵列上不起作用

Camp.findById(req.params.campId, async (err, camp) => {
        if(err) return res.redirect('/admin/camps');
        const resPerPage = 3;
        const page = req.query.page || 1;     
        const usersList = camp.usersList;
        let users = [];
        for(var userId of usersList) {
            const user = await User.findById(userId);
            //I want to perform .sort({follower: -1}).skip(resPerPage*(page-1)).limit(resPerPage)
            if(!user) return res.redirect('/admin/camps');
            users.push(user);
        };
预期输出:按关注者数量排序的所有用户


实际输出:所有用户,无论关注者的数量如何

能否显示
Camp
User
模型的模式定义?
const-CampSchema=new模式({usersList:{type:Array,default:[]},})
\n如果将
usersList
字段设置为
ObjectId
数组,并带有一个ref选项,告诉Mongoose在填充过程中使用哪个模型,即
const-CampSchema=newschema({usersList:[{type:Schema.Types.ObjectId,ref:'User'}])你可以运行你的查询作为
Camp.findById(req.params.campId)。填充({path:'usersList',options:{sort:[['follower',desc']]}})
这非常有用,谢谢,但我不知道代码作为一个整体会是什么样子?