Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

197
Vistas
Semanas agregadas de MongoDB entre dos fechas

Actualmente tengo una fecha de inicio y una fecha de finalización del año académico. Quiero obtener los datos de los estudiantes de cada semana durante este año académico. Actualmente, he creado una matriz que contiene todas las fechas de inicio y finalización de cada semana y estoy recorriendo cada semana y llamando a la base de datos cada vez de esta manera:

 let allWeeksData = [] let groupQuery: any = { _id: { attendance_code: "$attendance_code", }, total: { $sum: 1 }, }; for(let dateRanges of dateRangesArray) { const startDate = dateRanges.start_date; const endDate = dateRanges.end_date; const rawResults = await sessionAttendanceModel.aggregate([ { $match: { student_school: { $in: studentSchoolIDs }, "date.date": { $gte: new Date(startDate), $lte: new Date(endDate), }, attendance_code: { $in: usedAttendanceCodes, }, }, }, { $group: groupQuery, }, ]); rawResults.start_date = startDate rawResults.end_date = endDate allWeeksData.push(rawResults) }

Sin embargo, esto es bastante lento. ¿Hay alguna manera de llamar a la base de datos solo una vez usando un grupo agregado y obtener el mismo resultado final?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede $group todo por semanas y luego en $project en curso puede formular valores de salida según sus necesidades

Su agregación tendría algo como esto

 [{ $group:{ _id:{ $week: "$date.date" }, data:{ $first: "$$ROOT" } } }]
about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay un operador $week para obtener la semana del año a partir de una fecha, puede tener una etapa de $group para agrupar por semanas del año:

 { $group: { _id: { "week": { $week: "$date" }, "year": { $year: "$date" } } } }

parque infantil mongo

about 4 years ago · Juan Pablo Isaza Denunciar

0

Tal vez agrupar por esto:

 { _id: { attendance_code: "$attendance_code", date: { $dateTrunc: { date: "$date.date", unit: "week", startOfWeek: "monday" } }, }, total: { $sum: 1 }, }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda