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

299
Vistas
Consulta de agregación de Mongodb por diferencia de fecha

Estoy tratando de hacer un trabajo cron que sincroniza mis documentos. Debe intentar hacerlo x cantidad de veces, pero solo después de que hayan pasado 2 horas desde el último intento. En cada documento tengo el campo "lastSyncAt" que puedo usar.

 { "_id" : ObjectId("628d8c4ddb65027a2cfd1019"), "calculatedAt" : "", "count" : 0, "createdAt" : "2022-05-25 01:54:21", "lastSyncAt" : "2022-05-25 03:54:21" }

¿Cómo debo abordar esto?

¿Debo obtener el valor de lastSyncAt en la canalización y calcular la diferencia entre la fecha actual? ¿Cómo obtengo solo la parte de horas de eso en mi canalización?

¿Debo convertir lastSyncAt en Unix y obtener currentDate en Unix, restarlos y dividirlos por 7200 para ver si es mayor que 2?

¿O debería tomar otro enfoque?

Ni siquiera estoy seguro de qué enfoque tomar. No busco código, sino una idea de cómo manejar esto.

Gracias

Actualización: gracias a @derek-menénedez logré hacerlo funcionar como se muestra a continuación:

 [ // Stage 1 { $addFields: { lastSyncAt: { $dateDiff: { startDate: {$dateFromString: { dateString: "$lastSyncAt", timezone: "Europe/Zagreb" }}, endDate: "$$NOW", unit: "minute", timezone: "Europe/Zagreb" } } } }, // Stage 2 { $match: { lastSyncAt: { $gt: 120 } } } ]
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede usar el marco de agregación para lograr las cosas que desea:

https://mongoplayground.net/p/1RzPCYbeHEP

Puede intentar eliminar la proyección en el ejemplo para validar la cantidad de horas.

El operador $dateFromString lo ayuda a crear una fecha a partir de una cadena

El operador $dateDiff lo ayuda a extraer la diferencia de dos fechas

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