Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

303
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!