Я новичок в Mongo и пытаюсь найти лучший способ структурировать часть моей базы данных. Представьте себе программу создания документа, в которой пользователь составляет текстовый документ, выбрав «абзацы» из предварительно определенного шаблона. Мой вопрос только в том, как сохранить структуру шаблона; когда пользователь сохраняет свой текстовый документ, он полностью раздельный и некомплексный.MongoDB design - большой вложенный документ или разделен на несколько коллекций?
Полный «шаблон» может выглядеть следующим образом (упрощенный). :
{
description: 'Template 1',
someOtherField: '',
. . .
sections: [
{
description: 'Section 1',
paragraphs: [
{
description: 'Paragraph A',
subparagraphs : [
{
text: 'This is some text',
optionalTexts: [
{
text: 'This is optional'
},
. . more . .
]
}
. . more . .
]
}
. . more . .
]
}
}
Как вы можете видеть, они достаточно вложенные и могут потенциально охватывать множество данных.
Я бы выполнение запросов для достижения вещи, как «Перечислите разделы, принадлежащие к шаблону 56», «Дайте мне предметы абзаца для раздела 1234»; а также административные задачи по отдельным статьям, «Обновить текст подпункта 5678 ..», «Создать новый абзац для раздела 7568 ..».
Я в настоящее время есть две коллекции:
- шаблоны - документы, шаблоны, содержащие основные данные и массив разделов.
- параграфы - документы полного абзаца (включая вложенные подпункты и т. Д.). Каждый документ абзаца имеет поле, ссылающееся на _id раздела в документе шаблона.
Это более разумный подход, чем наличие одной коллекции с еще более глубоким вложенным документом?
Если у меня нет «ответа» на мой вопрос, некоторые полезные ресурсы будут очень признательны.
Благодаря
Большое спасибо, я этого не осознал! Я собираюсь переоценить, как данные будут необходимы и оттуда. –