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

192
Vistas
El método Mongoose lte no funciona por el momento

Estoy obteniendo la fecha guardada en db. Luego, estoy haciendo una pequeña matemática de fecha para restar la fecha de hoy de 3, lo que me da Fecha en formato - (DD-MM-YYYY). La fecha guardada en formato db también es la misma - (DD-MM-YYYY). ¿Alguien puede ayudarme a validar $lte para esa fecha? No recibo ningún registro de DipData.

 nodeCron.schedule("* * * * *", async function () { var DateNow = await moment().subtract(3, "days").format("DD-MM-YYYY"); console.log("Test Date Cron",DateNow); console.log("-->",new Date(DateNow.format("DD-MM-YYYY"))); let DipData = await userModel.find({}, { LastAppOpenedTime: { $lte : new Date(DateNow.format("DD-MM-YYYY")) }}) console.log("-----DipData ------->", DipData); });
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Lo primero que debe identificar si hay una fecha almacenada en el documento de la colección mongo es una cadena o formato de fecha regular o formato de época. Si es una cadena, la consulta puede no dar un resultado preciso. Si hay formato de fecha o formato de época, puede consultar fácilmente su resultado con el resultado adecuado.

  1. Por lo tanto, en caso de que haya una cadena en la clave del documento LastAppOpenedTime , puede realizar una consulta con $toDate en la consulta de búsqueda.
  2. Si la clave no está en formato de cadena en el documento almacenado, el siguiente código funcionará.
 var DateNow = moment().subtract(3, "days"); const DipData = await userModel.find({ LastAppOpenedTime: { $lte: new Date(DateNow) } });

Para los dos escenarios anteriores, funcionaría si su consulta está en forma precisa, como eliminar las primeras llaves vacías.

 userModel.find({}, { LastAppOpenedTime: { $lte : new Date(DateNow) }})

a

 userModel.find({ LastAppOpenedTime: { $lte : new Date(DateNow) }})
about 4 years ago · Juan Pablo Isaza Denunciar

0

Hola, conseguí que esto funcionara haciendo algunos cambios.

 const DateNow = await moment().subtract(3, "days"); console.log("Test Date Cron", DateNow); console.log("-->", new Date(DateNow)); const DipData = await userModel.find({ createdAt: { $lte: new Date(DateNow) } }); console.log("-----DipData ------->", DipData); res.status(200).json({ success: true, message: "Request was successful", DipData });

Noté que tenía el formato .("DD-MM-YYYY") al final de su función de momento, pero devolvió una cadena que no se pudo convertir con la nueva Fecha (DateNow). Eliminé el mío cuando probé, ya que la respuesta del momento funcionaba bien sin él.

Y también actualicé su userModel.find({}, { LastAppOpenedTime: { $lte : new Date(DateNow.format("DD-MM-YYYY")) }}) para eliminar el primer {} vacío. Entonces tendrías userModel.find({ createdAt: { $lte: new Date(DateNow) } });

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