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

145
Vistas
No puedo devolver la fecha en formato de cadena de configuración regional de un esquema mongodb que está en otro esquema

Guardé la fecha como una cadena en el esquema de ejercicio que se guardó como una matriz en el esquema del usuario. y mi esquema de la siguiente manera.

 const exerciseSchema = new Schema({ description: String, duration: Number, date: String }); const Exercise = mongoose.model("Exercise", exerciseSchema); const userSchema = new Schema({ username: { type: String, unique: true }, log: [exerciseSchema] }); const User = mongoose.model("User", userSchema);

Necesito llamar a sus datos, de acuerdo con las consultas que uso para ordenar por fechas. y lo he hecho de la siguiente manera.

 app.get("/api/users/:_id/logs", (request, response) => { let _id = request.params._id; let query = request.query; User.findById(_id, (error, result) => { if(!error){ let responseObject = result if(query.from || query.to){ let fromDate = new Date(0) let toDate = new Date() if(query.from){ fromDate = new Date(query.from) } if(request.query.to){ toDate = new Date(query.to) } fromDate = fromDate.getTime() toDate = toDate.getTime() responseObject.log = responseObject.log.filter((session) => { let sessionDate = new Date(session.date).getTime() return sessionDate >= fromDate && sessionDate <= toDate }) } if(query.limit){ responseObject.log = responseObject.log.slice(0, query.limit) } responseObject = responseObject.toJSON() responseObject['count'] = result.log.length response.json(responseObject) } }) });

Lo único que debo seguir es que no puedo obtener la fecha en formato local. la fecha se guarda en formato ISO (2015-12-15). Necesito llamarlo en formato local. pero aquí no tengo acceso a los objetos de la matriz de registros. No tengo ni idea de porqué.??

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

0

No almacene sus fechas como cadenas. Almacene sus fechas como fechas de Mongo ( ISODate("2020-12-24T05:00:00.000Z") ). Entonces puede consultar Mongo por fecha directamente. Transforma tus fechas después en el formato que quieras.

Ahora Mangosta es raro. De forma predeterminada, devuelve una matriz de objetos Mongoose, que son inmutables y difíciles de trabajar. Si solo necesita datos JSON puros, agregue la opción { lean : true } o .lean() si trabaja con la sintaxis encadenable (como se muestra a continuación).

 app.get("/api/users/:_id/logs", async (request, response) => { let _id = request.params._id; let query = request.query; let user; try { user = await User .findById(_id) .populate("log") .lean() // Returns JSON, not immutable Mongoose objects .exec(); // Returns a Promise so you can 'await' it } catch (error) { response.json(error); // catch your errors return; } if (query.from || query.to) { let fromDate = new Date(0) let toDate = new Date() if (query.from) { fromDate = new Date(query.from) } if (request.query.to) { toDate = new Date(query.to) } const fromDateN = fromDate.getTime() const toDateN = toDate.getTime() user.log = user.log.filter((session) => { let sessionDate = new Date(session.date).getTime(); return sessionDate >= fromDateN && sessionDate <= toDateN; }) } if (query.limit) { user.log = user.log.slice(0, query.limit) } // user = user.toJSON() --> It's already JSON now. user['count'] = user.log.length response.json(user) });
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