在Mongoose中为汇总调用中的引用文档填充字段值

我有两个基本模式用户课程

//用户模型

var UserSchema = new Schema({ userId: { type: String, default: '', required: 'Please provide UserId.', index : true }, Name :{ type: String, default: '', trim : true } }); 

//课程模式

 var CourseSchema = new Schema({ title: { type: String, default: '', required: 'Please fill course title', trim: true, index: true }, description: { type: String, default: '', trim: true }, category: { type: String, ref: 'Category', index: true } }); 

还有一个UserCourseProgress模式用于存储每个用户的课程进度。

 var UserCourseProgress= new Schema({ userId: { type: String, ref:'User', required: 'Please provide the User Id', index:true }, courseid: { type: Schema.Types.ObjectId, ref: 'Course', required: 'Please provide the Course Id', index: true }, timespent: { type: Number, //seconds default: 0 }, score: { type: Number } }); 

现在,我必须在课程级别上聚合UserCourseProgress模式的结果,以便显示如下结果: – {Course Name}({No_Of_Users_taken_Course})[例如课程A(15)]

 History.aggregate([{ $group: {"_id": {"primary": "$courseid"}, "popularityCount": {$sum: 1}}}, {$sort:{"popularityCount":-1}}, {$project:{"_id":0, "courseid":"$_id.primary", "count":1}} ]) 

现在想通过引用来填充课程模式中课程标题,但是在通过聚合操作员列表( 在这里 )之后,我无法想出办法。

你可以build议任何方式来填充其他集合的数据?