We are doing appointment booking, currently all logic is in our application, we just fetch all data for a day from MongoDB. With more appointments at the same day this starts to get slow, so I am wondering if we can put the “business logic” into a MongoDB aggregation?
Scenario:
- Entities are house (A), floor (A.1) and room (A.1.1)
- Open hours for every floor (9-10, 11-12, 15-16, 17-18h)
- Existing booking might not align to the official open hours
- Parallel appointment limits: 1 per room, 2 per floor, 3 per house.
Logic for getting open slots for room A.1.1 on 2022-10-01:
I can’t wrap my head around this, is this aggregation result possible with a MongoDB aggregation?