У меня есть следующая коллекция категорий
{
"_id" : ObjectId("5e1d8c3ed06661d2b06a7c46"),
"status" : "active",
"noOfLevels" : 3,
"levels" : [
ObjectId("5e1db2237a265cfe50dfdb18"),
ObjectId("5e1db22b7a265cfe50dfdb19"),
ObjectId("5e1db23b7a265cfe50dfdb1a")
],
"name" : "Fuel",
},
{
"_id" : ObjectId("5e1d8c3ed06661d2b06a7c46"),
"status" : "active",
"noOfLevels" : 3,
"levels" : [
ObjectId("5e1db2237a265cfe50dfdb18"),
ObjectId("5e1db22b7a265cfe50dfdb19"),
ObjectId("5e1db23b7a265cfe50dfdb1a")
],
"name" : "Feeds",
}
На вышеприведенных уровнях коллекции _id был сохранен как ссылка для последующего заполнения.
Коллекция уровня содержит следующие элементы: -
{
levelName: { type: String, required: true },
levelDesc: { type: String },
levelNo: { type: Number, required: true },
categoryId: { type: Mongoose.Schema.Types.ObjectId, ref: 'trainingCategories', required: true },
videoId: [{ type: Mongoose.Schema.Types.ObjectId, ref: 'trainingVideoMaster' }],
},
{
levelName: { type: String, required: true },
levelDesc: { type: String },
levelNo: { type: Number, required: true },
categoryId: { type: Mongoose.Schema.Types.ObjectId, ref: 'trainingCategories', required: true },
videoId: [{ type: Mongoose.Schema.Types.ObjectId, ref: 'trainingVideoMaster' }],
}
Я использую агрегацию и поиск, чтобы найти элементы в коллекции категорий, в моем конечном результате мне нужны подсчеты для идентификаторов видео, которые присутствуют на каждом уровне определенных категорий.
Нужен такой результат, как этот : -
{
name: 'How to save fuel',
catNo: 1,
noOfLevels: 3,
totalVideos: 4
},
{
name: 'Feeds',
catNo: 2,
noOfLevels: 3,
totalVideos: 3
}