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

156
Views
Insertar documento solo si es válido con el resto de la colección

Estoy buscando implementar una "reserva de sauna" con mongodb. Para esto, quiero tener una colección de reservas con cada reserva que contenga una hora de inicio y una duración en minutos.

ANTES de insertar una reserva previa solicitud, me gustaría asegurarme de que su inicio + duración no entre en conflicto con ninguna otra reserva que ya esté en la colección.

No puedo pensar en una forma de implementar esto en una consulta (si eso es posible), así que supongo que tengo que:

  1. recuperar colección (solo las reservas para hoy)

  2. repita la respuesta de la primera consulta y asegúrese de que la reserva que quiero insertar sea válida, no conflictiva. Entonces necesito

  3. guardar la reserva.

SIN EMBARGO, ¿cómo me aseguro de que entre el paso 1 y el 3 no haya otra sesión que haya insertado una reserva que entre en conflicto con la actual?

Hacer los pasos 1 a 3 a ciegas en el código seguramente resultaría en datos rotos/reservas en conflicto.

¿Alguien tiene una idea de cómo resolver esto con mongodb?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Una solución es utilizar un sistema de cola FIFO (primero en entrar, primero en salir). Cada vez que tenga una nueva reserva, entrará en una cola. Luego, el sistema extraerá los elementos del frente de la cola uno por uno y solo procesará uno a la vez. en su caso, el proceso serán los pasos 1 a 3. También puede mejorar los pasos 1 y 2 solo consultando mongoDB utilizando una búsqueda donde la hora de inicio de la cita y la hora de finalización de la cita no coincidan con otra cita. De esta manera, no necesita realizar una operación costosa como recuperar TODAS las reservas para hoy e iterar a través de ellas.

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!