Запрос по иерархической ссылке

Я ищу лучший способ для моделирования этих данных: у меня есть коллекция законов. Каждая статья может иметь 0 абзаца (это означает, что абзац не пронумерован явно) или более (максимум 5).

var lawSchema = new Schema({
name:{type:String,required:true},
chapter:{type:String},
paragraph:[{type:Numer}]
});

var documentSchema = = new Schema({
    name:{type:String,required:true},
    article_ref:[{item:{type: ObjectId, ref: 'article'},comment:String}]
    });

Эта текущая схема неверна, поскольку документ может ссылаться на статью ИЛИ только на конкретный абзац. Я должен иметь возможность запросить коллекцию документов двумя способами: по закону или по закону.

  • в первом случае я хочу получить весь документ, который ссылается на этот закон X (или его параграф).
  • во втором случае я хочу только те документы, которые относятся к этому пункту закона (игнорируя другие пункты)

Первое и слишком простое решение - "выровнять" эти иерархические данные в коллекции "Право" и получить разные документы для каждого закона и абзаца:

var lawSchema = new Schema({
name:{type:String,required:true},
});

коллекция должна выглядеть так:

[
{_id:000,name:"article1"},
{_id:001,name:"article1 - paragraph 1"},
{_id:002,name:"article1 - paragraph 2"},
{_id:003,name:"article2"}
...
]

Мне это не нравится, потому что для выполнения запроса по статье требуется какая-то большая дополнительная работа на бизнес-уровне (как я уже сказал, мне нужны документы, которые ссылаются на "article1", а также "article1 - пункт 1")

РЕДАКТИРОВАТЬ: я нашел этот вопрос Мангуста Схема для иерархических данных, таких как папка> подпапка> файл Но я не ясно, если с помощью путей, я легко получить ссылки, как я сказал (ссылка на главу и все ее абзацы или один абзац)

0 ответов

Другие вопросы по тегам