Разработка схемы MongoDB - Работа с вариациями для одной схемы - PullRequest
0 голосов
/ 19 ноября 2018

Скажем, у меня есть коллекция mongoDB, которая содержит books: в некоторых книгах есть главы, поэтому book collection состоит из нескольких глав (и каждая глава содержит некоторый текст);Теперь скажите, что в некоторых книгах есть главы, но внутри их глав тогда есть подразделов ;Таким образом, в этом случае фактический текст содержится в подразделах .Тем не менее, в других книгах вообще нет глав (например, в литературе): здесь очень много текста;

Как мне разработать схему MongoDB book, которая содержит chapters + texts в некоторых случаях, но chapters & subchapters + texts в других и вообще никаких глав в других случаях?

Единственное решение, которое я до сих пор придумал, - это создание нескольких схем:

Псевдокод:

Книга с главами:

{
 chapters: [Chapter], //array of chapters
}

Глава:

{
 text: text,  (as string)
}

, а затем для Книг с подразделами:

Книга с подразделами:

{
 chapters: [ChapterWithSubChapters],
}

ChapterWithSubchapters:

{
 subchapters: [subchapter]
}

Подраздел:

{
 text: text, (as string)
}

.. но это выглядит не такочень гибок для меня.

PS: Извините, если я здесь использую неправильные термины в отношении schema, collection, - я не совсем уверен и довольно плохо знаком с предметом, как вы, вероятно, можете сказать измой вопрос.

...