let pipeline = [{ $match: { time: { $gt: 980985600 }, user_id: mongoose.Types.ObjectId("60316a2e7641bd0017ced7b1") } }, { $project: { newDate: { '$toDate': "$time" }, user_id: '$user_id' } }, { $group: { _id: { week: { $week: "$newDate" }, year: { $year: "$newDate" }}, count: { $sum: 1 } } }]Actualmente estoy tratando de realizar un agregado a través de mongoose para encontrar el promedio de inicios de sesión por semana para un usuario específico. Hasta ahora he podido llegar al número total de inicios de sesión cada semana, pero tenía curiosidad por saber si había alguna forma de encontrar el promedio de estos grupos finales dentro de la misma función. ¿Cómo haría para hacer esto?
Simplemente agregue una última etapa a su consulta:
{ $group: { _id: null, avg: { $avg: "$count" } } }Así que prueba esto:
let pipeline = [ { $match: { time: { $gt: 980985600 }, user_id: mongoose.Types.ObjectId("60316a2e7641bd0017ced7b1") } }, { $project: { newDate: { '$toDate': "$time" }, user_id: '$user_id' } }, { $group: { _id: { week: { $week: "$newDate" }, year: { $year: "$newDate" } }, count: { $sum: 1 } } }, { $group: { _id: null, avg: { $avg: "$count" } } } ];