Tengo un esquema de USUARIOS:
const signUpTemplate = new mongoose.Schema({ fullname: { type: String, }, purchasedCourses: { type: Array, default: [] //Here courseIdList is pushed with unique ID and course name } });Y un esquema de cursos:
const courseIdList = new mongoose.Schema({ _id: { type: String }, courseName: { type: String }, purchaseDate: { type: Date, default: Date.now, }, });¿Cómo puedo obtener el recuento total de usuarios que tienen un mismo curso? Por ejemplo, si 10 usuarios diferentes compran un curso con el nombre 'A', ¿cómo pueden obtener este número total?
Con $lookup , puede buscar los registros coincidentes de la colección de courses en la colección de users .
db.courses.aggregate( [{ $lookup: { from: "users", localField: "_id", foreignField: "purchasedCourses._id", as: "coursesCount" }}, { $addFields: { "coursesCount": { $size: "$coursesCount" } } }] ) Leer más en $lookup ;