Добрый день. Необходимо найти всех людей которые окончили, например, институт 567. Проблема в том, что мы не можем точно указать родительские элементы для этого института(и находятся на разных уровнях). Например и в professions.actor.theatre.drama и в professions.actor.stuntman есть institute
{
"_id": ObjectId("56ff619b14989a0ed0316921"),
"firstName": "Иван",
"lastName": "Лабанов",
"professions": {
"actor": {
"film": {
"drama": {
"institute": 567
},
},
"theatre": {
"drama": {
"institute": 123,
},
},
"stuntman": {
"institute": 321,
}
},
}
}, {
"_id": ObjectId("56fe77b114989a05577e9f22"),
"firstName": "Петр",
"lastName": "Смирнов",
"professions": {
"actor": {
"film": {
"comedy": {
"institute": 567,
}
},
}
}
}, {
"_id": ObjectId("56fe77b114989a05577e9f11"),
"firstName": "Василий",
"lastName": "Иванов",
"professions": {
"actor": {
"film": {
"comedy": {
"institute": 123,
}
},
}
}
}
Выбрали не реляционную именно потому, что у нас данные хоть и структурируются, но они имеют вложенность, с которой прекрасно справляется монга. Суть задачи - у нас множество людей творческих профессий(и еже с ними): Актёры, Озвучка, Модели, Мейкаперы. У каждой из этих профессий есть множество направлений (актёр театра, актёр кино, цирковые актёры, каскадеры), у этих направлений могут быть конкретные специализации (театр оперы и балета, актёр комедийного кино и тд), и так еще несколько уровней вложенности(образование, знание языков и тд). Сложность не просто в хранении, а в том, чтобы можно было искать по этим параметрам. Вот реальный пример запроса:
Мужчина, выше 180см, до 25 лет, водительские права категории С, окончивший ВГИК, солист оперы(итальянский язык), умеющий жонглировать.