Mongoose: создайте уникальные короткие коды для каждого горизонтального слоя в древовидной структуре документа - PullRequest
0 голосов
/ 30 января 2019

Предположим, что каждый документ в коллекции nodes имеет следующие поля:

_id, name, nestingLevel, horizontalIndex, createdAt, updatedAt, parentDocumentId, namespace, nestingLevelCode;

_id - это UUID версии 3, который использует пространство имен.

horizontalIndex - это строка или число, уникальное для всех дочерних элементов узла.Я хочу, чтобы он был коротким (например, пара букв или цифра), чтобы его можно было передать детям и далее сформировать отношение предка-потомка, которое равно nestingLevelCode.

Например, nestingLevelCode может выглядеть примерно так: a.b.c.a означает, что текущий узел является потомком узлов a, b, c и a.

Эти данные длинны с nestingLevel, horizontalIndex и namespace(который является uuid v3) будет достаточно, чтобы определить отношения предок-потомок между двумя узлами без обхода дерева.

Единственная проблема здесь - правильно генерировать horizontalIndex.Единственный способ, которым он может быть сгенерирован правильно, - это вставка базы данных, чтобы избежать дублирования, но я не уверен, как это сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...