Получение конкретных полевых данных из вложенного массива объектов

#mongodb #mongoose #nested

Вопрос:

Моя схема :

 const ClassroomSchema = new mongoose.Schema({  name: String,  organization_id: {  type: mongoose.Schema.Types.ObjectId,  ref: "organization",  },  sessions: [  {  sessionName: String,  topics: [  {  topicName: String,  subTopics: [  {  subTopicName: String,  contents: [  {  type: mongoose.Schema.Types.ObjectId,  ref: "content",  },  ],  },  ],  },  ],  },  ], });  

Я хочу получить только содержимое указанной подтемы

Мой код :

 const data = await Classroom.findOne(  {  _id: roomId,  },  subTopics: {  $elemMatch: {  _id: subTopicId,  },  },  }  ).populate({  path: "sessions.topics.subTopics.contents",  }  );   res.json(data);   

Мой вывод должен содержать только массив содержимого только указанных подтем

Но это приводит к множеству тем и подтем, а также к содержанию всех