Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

379
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda