MongoDBに類似の構造を格納するためのより良い方法はありますか?すべてのコレクションを選択するか、各構造に1つのコレクションを選択しますか? 1つまたは複数の利点はありますか?類似のデータ構造に対するMongoDBコレクション構造の選択
たとえば、詳細な分析のためにいくつかのログを保存する必要があります。各構造など、いくつかのstatタイプのための特定のいくつかのデータの共通部分があります:item1
とitem2
のため、いくつかの異なるフィールドで
{
timestamp: ...,
client: { ... },
type: 'stats_for_item1',
data: {
id: ObjectId('xxx'),
field1: 1,
field2: 2
}
},
{
timestamp: ...,
client: { ... },
type: 'stats_for_item2',
data: {
id: ObjectId('zzz'),
field3: 3,
field4: {
field5: [5, 1]
}
}
}
あなたは私たちが共通部分を持って見るように
、およびdata
フィールド、。
timestamp
フィールドとtype
フィールドだけがインデックスされているようです(もちろん_id)。そして、このようなアイテムの数は限られています.3つのアイテムタイプがあります。書き込みがたくさんあり、読み込み量は少なくなります
私の質問はどのようにこのような構造を整理するのですか? 1つの大きなコレクションstats
を使用し、そこにすべてを保管しますか?いくつかのコレクションを作成しないでくださいstats_item1
、stats_item2
およびstats_item3
最適なのは何ですか?どんな利点? mongoの観点から、シャーディング/インデックス/クエリ/ロック/ etc?