我有两个基本模式 用户 和 课程
//用户模型
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架构的结果,以便我显示我的结果: - {课程名称}({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}}
])
现在想通过它的引用填充课程标题中的课程标题,但是在浏览了聚合运算符列表(here)之后。我无法想办法这样做。
你能建议任何方法来填充其他馆藏的数据吗?