Запрос вложенных документов в Couchbase - PullRequest
0 голосов
/ 24 декабря 2018

Я пишу Reddit, как магазин комментариев, используя Couchbase.Для каждого комментария я храню его parentId и список childrenIds.Каждый комментарий верхнего уровня на веб-странице будет иметь parentId как null.

. Я хочу эффективно получить блок комментариев.Под блоком комментариев я подразумеваю комментарий верхнего уровня вместе со всеми дочерними комментариями.Поэтому первым шагом в этом может быть написание функции map, которая генерирует ids всех комментариев верхнего уровня.

Как мне получить целое дерево, когда у меня есть корень.Очень наивный подход - найти детей и рекурсивно их опрашивать.Но это сводит на нет цель не использовать реляционную базу данных для этого проекта (поскольку я имею дело с сильно вложенными данными, а реляционные базы данных ужасно хранят их).

Может ли кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 24 декабря 2018

ОК, поэтому каждый комментарий верхнего уровня имеет дерево под-комментариев под ним.Я думаю, что вы можете смело помещать все дерево подкомментариев в документ комментария верхнего уровня в большинстве случаев.Предельное значение размера документа по умолчанию составляет 20 МБ, что очень много для текста.

Вопрос в том, что делать с комментариями, которые вдохновляют МНОГО суб-комментариев.Когда это происходит, я предлагаю вам начать разливать части дерева подкомментариев на другие документы, поэтому, строго говоря, может существовать дерево деревьев подкомментариев, хотя обычно вам нужен только один документ.Спроектируйте вещи так, чтобы эти вспомогательные документы выбирались только по требованию, и вам никогда не придется извлекать абсолютно все дерево подкомментариев.

...