Скажем, у меня есть коллекция 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
, - я не совсем уверен и довольно плохо знаком с предметом, как вы, вероятно, можете сказать измой вопрос.