Actualmente estoy ejecutando una consulta que se ve así:
courses = await Enrollment.aggregate([ { $match: { userId: userId } }, { $lookup: { from: 'courses', localField: 'course', foreignField: '_id', as: 'course' } }, { $unwind: '$course' }, { $project: { course: { courseCode: true, name: true, officialCode: true, } } } ]);Esto produce resultados que se ven así
[{ "_id": "61e0652ba5c2fe5bdcdbdc23", "course": { "courseCode": "code2", "name": "Terst class 2", "officialCode": "test 202" } }] Me pregunto si hay alguna manera de llevar el código de courseCode , el name y el código officialCode al "nivel más alto" del documento.
Gracias de antemano.
Puede hacerlo con la canalización de agregación $replaceRoot . Añade esto como último paso:
{ "$replaceRoot": { "newRoot": "$course" } }