• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

133
Views
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); });
almost 3 years ago · Juan Pablo Isaza
2 answers
Answer question

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) }})
almost 3 years ago · Juan Pablo Isaza Report

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) } });

almost 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error