sql >> データベース >  >> NoSQL >> Redis

時間範囲のあるMongodb交差点

    このユースケースにはredisのセットを使用できます:

    タイムスロットが常に15分の倍数である場合は、次のように実行できます。

    1)すべてのタイムスロットを含むユニバーサルセットを用意します。ここでは15の倍数です。

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

    2)チームのメンバーごとに、予約されたスロット用に個別のセットがあります。メンバー1の場合08:15-08:50 09:00まで彼を婚約させる必要があります 。

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

    3)他のメンバーも同様です。 member2 08:30-09:30

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

    4)これで、メンバーごとに、

    を使用して空きスロットを取得できます。
    sdiff universal member_1
    

    5)スロット全体に空きがあります。 2つの操作を行う必要があります。

    result = sinter member_1 member_2 ...
    sdiff universal result
    

    すべてのメンバーのセットを交差させると、すべてのユーザーが忙しいタイムスロットが得られます。したがって、これらのスロットを割り当てることはできません。

    ユニバーサルセットを使用して減算(差分)操作を実行すると、スロット全体を自由に使用できるようになります。

    お役に立てれば。




    1. MongoDB$inアグリゲーションパイプラインオペレーター

    2. オープンソースデータベースを展開する方法

    3. エラーjemalloc/jemalloc.h:Redisを作成するときにそのようなファイルまたはディレクトリはありません

    4. MongoEngineを使用して並べ替えますか?