Что лучше в MongoDB? Хранение списка членов в виде массива в коллекции отношений объекта или группы членов
Я создаю социальное приложение с MongoDB. У меня есть сценарий, где мне нужно сохранить список пользователей в группе и их отношение к группе. Как оптимизировать способ его хранения? Я встречал 2 пути.
Сохранение списка пользователей внутри групповой коллекции
{ "groupId":"", "admins":[ "1234","2345","3422" ], "moderators":[ "3242" ], "members":[ "2354","9865","6747" ] }
сохранение идентификатора группы, идентификатора пользователя, отношения в виде списка в отдельной коллекции в традиционном стиле
{ "groupId":"1234", "userId":"8764", "relation":"Admin" },{ "groupId":"0987", "userId":"4345", "relation":"Member" },{ "groupId":"0987", "userId":"3456", "relation":"Admin" },{ "groupId":"0987", "userId":"7654", "relation":"Member" },{ "groupId":"0987", "userId":"8765", "relation":"Member" }
Мои основные запросы будут
перечислить членов группы с их отношением
искать участников по их начальному слову
перечислите группы, в которые входит пользователь
Какой подход будет лучше всего подходит для вышеуказанных требований.
** извините за форматирование JSON не принимает в стиле кода редактора.