X と Y の 2 つのパラメータを持つリクエストを受け取るアプリケーションがあるとします。これらのリクエストをカウントするだけで、タスクに MongoDB を使用したいと考えています。
その情報を MongoDB に格納するには、次の 2 つの方法が考えられます。
1. X と Y の組み合わせごとにドキュメントを用意する:
{
_id : "X+Y",
count : 34
}
2. Y を X に埋め込みます。つまり、各 X には、その X に関するすべての要求をまとめたドキュメントがあります。
{
_id : "X",
total_count : 47,
y: {
"Y1" : 34,
"Y2" : 13
}
}
これらの各方法の長所と短所は何ですか?
1 つの方法がベスト プラクティスと見なされますか? 私が見逃している別の正当な方法はありますか?これはよくあるジレンマですか?
MongoDB の手動データ モデリングセクションと、この問題について説明している FAQを読んでいますが、満足できませんでした。
ありがとう
アップデート
私のアプリケーションは 1 日に約 5,000 万件のリクエストを処理すると予想されますが、各リクエストにはいくつかの属性 (X や Y など) が含まれますが、その量は比較的少量 (4 ~ 5) であり、各リクエストは (挿入によって) カウントする必要があります。または更新します)。
このデータは約 1 時間ごとにクエリされ、クエリは集計を使用することが期待されます。これらのクエリは通常、過去数日 (最大 1 週間) のデータをクエリします。