3

MongoDBドキュメントでの配列とハッシュの内部割り当てと配置(私の理解では、配列を介して実装されている)を理解しようとしています。

私たちのドメインには、最大 5 ~ 6 レベルの深さ (ネストされたハッシュを考えてください) までの論理グループに、数千から数十万のキーと値のペアを含むドキュメントがあります。

キーのネストをドットで表します。たとえば、x.y.zMongoDB に挿入すると、自動的に次のようになります。

{
    "_id" : "whatever",
    "x" : {
        "y" : {
            "z" : 5
        }
    }
}

最も一般的な操作は、値をインクリメントすることです。これは、atomic を使用して行います$inc。通常は、1 回の更新コマンドで一度に 1000 以上の値を処理します。新しいキーは時間の経過とともに追加されますが、頻繁ではありません (たとえば、1 日 100 回)。

別の表現は、名前にドットを使用せず、他の区切り文字を使用して、フラットなドキュメントを作成することであると思いました。

{
    "_id" : "whatever",
    "x-y-z" : 5
}

キーと値のペアの数と、$inc更新と新しいキーの挿入に関する使用パターンを考慮して、次の観点から 2 つのアプローチ間のトレードオフに関するガイダンスを探しています。

  • ディスク上のスペース オーバーヘッド

  • $inc更新のパフォーマンス

  • 新しいキー挿入のパフォーマンス

4

1 に答える 1