Quelle est la meilleure façon de stocker des structures similaires dans MongoDB? Choisissez une collection pour tous ou une pour chaque structure? Des avantages d'en avoir un/peu?Choix de la structure de collections MongoDB pour des structures de données similaires
Par exemple, je dois stocker des journaux pour d'autres analyses. Il y a une partie commune pour chaque structure et des données spécifiques pour un certain type de stat, comme:
{
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]
}
}
}
Comme vous le voyez, nous avons une partie commune, et data
terrain, avec quelques champs différents pour item1
et item2
.
Semble que seuls les champs timestamp
et type
seront indexés (et _id bien sûr). Et il y a un nombre limité de ces articles, disons 3 types d'articles au total. Il y aura beaucoup d'écritures, et une petite quantité de lectures
Alors, ma question, comment organiser de telles structures? Utilisez une grande collection stats
et y stockez tout? ot créer quelques collections stats_item1
, stats_item2
et stats_item3
. Qu'est-ce qui est optimal? Des avantages? Du point de vue mongo, pour sharding/indexing/querying/locking/etc?