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

368
Views
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);
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

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 }
about 4 years ago · Juan Pablo Isaza Report

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.

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!