Mongodb 无法对我的集合执行某些异步mongoose查询操作
我的问题是,我无法在不调整模型或控制器的情况下对应用程序分页。要分页,我需要执行与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
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']]}})
这非常有用,谢谢,但我不知道代码作为一个整体会是什么样子?