sql >> Databáze >  >> NoSQL >> Redis

Průsečík Mongodb s časovým rozsahem

pro tento případ použití můžete použít sady redis:

Pokud jsou časové úseky vždy v násobcích 15 minut, můžete to udělat takto:

1) Mějte univerzální sadu obsahující všechny časové sloty. Zde násobky 15.

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

2) Pro každého člena týmu mějte samostatnou sadu rezervovaných slotů. Pro člena1 08:15-08:50 musíte ho zasnoubit do 09:00 .

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

3) Podobně postupujte i u ostatních členů. člen2 08:30-09:30

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

4) Nyní můžete pro každého člena získat volné sloty pomocí

sdiff universal member_1

5) Pro celkové sloty zdarma. Musíte provést dvě operace.

result = sinter member_1 member_2 ...
sdiff universal result

protnutí všech členů sady poskytne časové úseky, ve kterých jsou všichni uživatelé zaneprázdněni. Takže ty sloty nemůžete přidělit.

Provedením operace odečítání (rozdílu) s univerzální sadou získáte celkový počet slotů, které lze volně obsadit.

Snad to pomůže.




  1. Server MongoDB není přístupný v místní síti navzdory vazbě IP

  2. Víceoborové dotazování na Redis pomocí Redis Spring

  3. Jak spustit Redis v Azure?

  4. Jak odstranit prvek z dvojitě vnořeného pole v dokumentu MongoDB.