Мне нужно хранить некоторых пользователей и их групповые отношения, как показано ниже
Поэтому я планирую создать коллекцию, как показано ниже
UserGroupRelation Collections
{
"user":String,
"Group":String"
}
пример коллекций для супер администраторов
{
"user":"Adminuser-1",
"Group":"Group1"
}
{
"user":"Adminuser-1",
"Group":"Group2"
}
{
"user":"Adminuser-1",
"Group":"Group3"
}
, где столбец user & Group проиндексирован, и я буду работать под видом запроса
1. Всякий раз, когда я хочу проверить, имеет ли данный пользователь доступ к данной группе
db.UserGroupRelation.find( { user: "Adminuser-1", Group: "Group2" })
2. Также я хочу удалить все ассоциации всякий раз, когда мы удаляем группу
db.UserGroupRelation.deleteMany({ Group: "Group2" })
3.Также найти всех пользователей группы
db.UserGroupRelation.find( { Group: "Group2" })
4.Найти иерархии ?, с моим подходом я не могу найти
Но с этим подходом я Дублирование большого количества данных также в режиме реального времени может иметь 10000 групп и 1 миллион пользователей, поэтому могут возникнуть проблемы с производительностью. И с этим я не могу поддерживать иерархию, такую как SuperAdmin-> SubAdmin-> user из той же группы
Я проверил с деревом mon go, но это не соответствует этому требованию , Есть ли лучший способ справиться с этим требованием в mongodb.?