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

159
Vistas
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 Respuestas
Responde la pregunta

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 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