#mongodb
#mongodb
Вопрос:
Из документов:
MongoDB поддерживает не более 100 уровней вложенности для документов BSON.
Но что подразумевается под «вложенностью для документов BSON»? Например, если я хочу реализовать встраивание всех комментариев в один документ (для потоковой передачи)
{
_id: ObjectId(...),
... lots of topic data ...
replies: [
{ posted: ISODateTime(...),
author: { id: ObjectId(...), name: 'Rick' },
text: 'This is so bogus ... ',
replies: [
{ author: { ... }, ... },
... ]
}
и тогда, если я захочу получить доступ к комментарию 101-го уровня, я не смогу этого сделать?
replies_1.0.replies_2.0.replies_3.0.replies_4....0.replies_101
Комментарии:
1. Да, это означает, что вы не можете этого сделать (вы даже не сможете сохранить этот документ). Но у вас будут гораздо большие проблемы с этим дизайном, чем ограничение вложенности mongo 🙂
2. См. Комментарий @SergioTulentsev. Разве вы не можете просто добавить родительский идентификатор для ответов к существующим ответам? Это позволит вам хранить ответы в виде массива.
3. Спасибо, ребята. @Jaco, вы говорите о древовидных структурах модели с родительскими ссылками ? Я также рассматриваю этот вариант.
4. Да, @kretyak. Вы могли бы использовать древовидную структуру модели с родительской ссылкой. Вероятно, вы хотите сохранить ответы в виде отдельной коллекции, чтобы избежать ограничения документа в 16 МБ, если вы ожидаете много ответов.