在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议任何方式来填充其他集合的数据?