sql >> Database teknologi >  >> NoSQL >> Redis

Mongodb kryds med tidsinterval

du kan bruge redis' sæt til denne use case:

Hvis tidsvinduerne altid er i multipla af 15 minutter, kan du gøre sådan her:

1) Hav et universelt sæt, der indeholder alle tidsvinduer. Her multipla af 15.

sadd universal 08:00 08:15 08:30 08:45 09:00 ...

2) For hvert medlem i holdet har et separat sæt til de pladser, der er booket til dem. For medlem 1 08:15-08:50 du skal gøre ham forlovet til 09:00 .

sadd member_1 08:15 08:30 08:45 09:00

3) Gør det samme for andre medlemmer også. medlem 2 08:30-09:30

sadd member_2 08:30 08:45 09:00 09:30

4) Nu for hvert medlem kan du få de gratis slots ved at bruge

sdiff universal member_1

5) For den samlede slots gratis. Du skal udføre to operationer.

result = sinter member_1 member_2 ...
sdiff universal result

krydsende alle medlemmers sæt vil give de tidsrum, hvor alle brugere er optaget. Så du kan ikke tildele disse slots.

Hvis du trækker fra (diff) med det universelle sæt, får du de overordnede pladser, der er frie til at blive besat.

Håber dette hjælper.




  1. Node js mongoose befolkningsgrænse

  2. ImportError:Intet modul med navnet objectid

  3. Sorter indlejret række af objekter

  4. Sådan installeres Apache CouchDB 2.3.0 i Linux