• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

255
Vistas
Mangosta: ¿Cómo almacenar la duración y el tiempo?

En Mongoose, ¿cómo guarda una persona la duración en la base de datos de Mongo? Estoy tratando de hacer una aplicación de tenis y estoy atascado en el diseño de la base de datos, específicamente con el tiempo.

Por ejemplo, quiero agregar un evento Rally (simplemente golpear la pelota de tenis de un lado a otro con otro jugador) durante X cantidad de tiempo. Así que me gustaría almacenar la duración.

Otro ejemplo, cuando juego un partido de tenis con otra persona, me gustaría almacenar la duración total del juego.

Estoy pensando en calcular la diferencia entre la hora de finalización y la hora de inicio, pero ¿puedes hacer matemáticas en Mongo?

 const MatchSchema = new mongoose.Schema({ startTime: { type: Date, default: Date.now }, endTime: { type: Date }, duration: { type : Date }, player: { type: String, trim: true, require: [true, 'Please add a player name'] }, opponent: { type: String, trim: true }, date: { type: Date, default: Date.now }, score: { playerOneScore: { type: Number }, playerTwoScore: { type: Number } }, category: { //array of strings type: [String], required: true, enum: [ 'Rally', 'Set', 'Match', 'Practice' ] } }); module.exports = mongoose.model('Match', MatchSchema);
almost 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

(1) La matemática de fecha es posible en MongoDB. Consulte Operadores de agregación para la fecha .

(2) También puede almacenar la duración como un campo de tipo numérico (un número entero o largo), pero será algo que desee en su aplicación, en segundos o minutos . Nombre el campo como duration_in_seconds , por ejemplo.

Otra posibilidad es almacenar la duración como:

 duration: { hours: number, minutes: number, seconds: number }
almost 3 years ago · Juan Pablo Isaza Denunciar

0

Dentro de mongoose , tiene acceso a Middleware (también llamado ganchos previos y posteriores) que permite definir alguna acción que se puede realizar durante diferentes ciclos de vida de una consulta. Puede verificar el gancho posterior que le permite realizar ciertas acciones después de que se haya guardado el modelo. a la base de datos.

Así es como se define

 MatchSchema.post('save', function(doc, next) { // here you have access to the document which have been save to the database });

Como el esquema se define en javascript y tiene acceso al modelo que se ha guardado en el doc de argumento de la devolución de llamada pasada a la función .post , puede realizar cualquier cálculo matemático que sea posible usando javascript y hacer algunos cambios en otro atributo en el mismo documento y guarde la actualización realizada en la base de datos.

almost 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda