我有一个模式:
var ProjectSchema = new Schema({
name: {
type: String,
default: ''
},
topics: [{
type: Schema.ObjectId,
ref: 'Topic'
}],
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
我想要做的是获取所有项目中所有主题的数组。我不能直接查询主题并获得全部列表,因为有些主题未被分配,并且它们没有与项目的引用关联(为了避免双向引用)。因此,我需要查询项目并进行聚合。我的操作类似于:
Project.aggregate([{$project:{topics:1}}]);
但是这会给我一个带有topics字段的Project对象数组。我想要的是一个带有topic对象的数组。
我该如何做?