Что подразумевается под «вложенностью для документов BSON» (в MongoDB)?

#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 МБ, если вы ожидаете много ответов.