私の要件は、クライアントごとに (ロケーション ID + BITMAP) のリストを保存することです。行の例は次のとおりです。
- キー: クライアント ID
- 値: < (場所 1、ビットマップ 1)、(場所 2、ビットマップ 2)、...、(場所 N、ビットマップ N) >
どこ
- 「ビットマップ k」には、クライアントがその場所 k を訪れた日付の履歴が含まれています。
Value の要素の数はクライアントごとに異なり、0 の場合もあれば 100 の場合もあります。次の操作が効率的になるように、このデータを MongoDB に保存する方法を知りたいです。
- すべての行のすべての値のペアで特定の BIT をリセットします
- 行のいくつかの値ペアの特定の BIT を更新します
クエリ 2 の例は次のとおりです。
- 行キー: クライアント A
- 行の値: < (場所 1、ビットマスク 1)、(場所 2、ビットマスク 2)、(場所 3、ビットマスク 3) >
- クエリ: キー = 'Client A' で行を更新し、Loc IN (Loc 1, Loc 3) のビット # 8 を設定します
最終的に、各行の値のペアを反復処理できる map-reduce クエリを実行したいと思います。