Сложные и множественные связи базы данных в MongoDB

В настоящее время я пытаюсь смоделировать структуру базы данных MongoDB, в которой сущности очень сложны по отношению друг к другу.

В моих текущих коллекциях запросы MongoDB сложно или невозможно поместить в одну агрегацию. Кстати, я не специалист по базам данных и работаю с MongoDB всего около полугода.

Чтобы сделать это как можно более простым, но необходимым, это моя задача:

У меня есть газетные статьи, которые содержат простые ключевые слова, произведения (произведения, книги, фильмы), людей и связанные сочетания работ и людей. Кроме того, одни и те же люди появляются под разными именами в разных статьях.

Позже, на лице человека, я хочу показать следующее:

  • ссылки на человека с именем и работой и соответствующие статьи
  • статьи, в которых человек появляется без работы (по имени)
  • другие ключевые слова, которые все еще находятся в статье

В своей структуре я хочу, чтобы такие объекты, как люди, встречались несколько раз. Итак, это мои текущие коллекции:


Article
id
title
keywordRelations


KeywordRelation
id
type (single or combination)
simpleKeywordId (optional)
personNameConnectionIds (optional)
workIds (optional)


SimpleKeyword
id
value


PersonNameConnection
id
personId
nameInArticleId


Person
id
firstname
lastname


NameInArticle
id
name
type (e.g. abbreviation, synonyme)


Work
id
title

Чтобы соответствовать требованиям, мне всегда нужно было бы создавать запросы размером от 3 до 4 таблиц. Это возможно и полезно с MongoDB?

Или есть более простой способ и структура для достижения этого?

0 ответов

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