Каков наилучший способ хранения подобных структур в MongoDB? Выберите одну коллекцию для всех или одну для каждой структуры? Любые преимущества наличия одного/нескольких?Выбор структуры коллекций MongoDB для аналогичных структур данных
Например, я должен хранить некоторые журналы для дальнейшей аналитики. Существует общая часть для каждой структуры и некоторые данные, специфичные для определенного типа стат, как:
{
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
поле с несколькими различными полями для item1
и item2
.
Похоже, что только timestamp
и type
поля будут проиндексированы (и, конечно, конечно). И ограниченное количество таких предметов, например, всего 3 типа предметов. Будет много записей и небольшое количество сообщений
Итак, мой вопрос, как организовать такие структуры? Используйте одну большую коллекцию stats
и сохраните все там? ot создать несколько коллекций stats_item1
, stats_item2
и stats_item3
. Что оптимально? Любые преимущества? С точки зрения монго, для обхода/индексирования/запроса/блокировки/etc?