Es gibt ein paar Möglichkeiten, dies zu erreichen, und Sie erwähnen eines in Ihrem Kommentar.
1) Abfrage für alle Benutzer wo Gruppe = Benutzer. Iterieren jede und die Gruppe aktualisieren in jeder der Gruppe = Moderatoren
2) Fügen Sie etwas Struktur
users
uid_0
"date_of_birth": "June 23, 1912",
"full_name": "Alan Turing",
"group": "-UY89j99j9jasd",
"nickname": "Alan The Machine"
uid_1
"date_of_birth": "June 23, 1912",
"full_name": "Alan Turing",
"group": "-Y888jasjdjaos",
"nickname": "Alan The Machine"
uid_2
"date_of_birth": "June 23, 1912",
"full_name": "Alan Turing",
"group": "-UY89j99j9jasd",
"nickname": "Alan The Machine"
und die Gruppen
-UY89j99j9jasd
group_name: "users"
-Y888jasjdjaos
group_name: "dudes"
dann alle aktuellen Benutzer zu drehen, die der Nutzer sind In Moderatoren ändern Sie den Gruppennamen in "Moderatoren". Das ist auch schön, denn wenn Sie sich entscheiden, dass Sie das Wort "Moderatoren" nicht mögen, sondern stattdessen "Leute, die pfeifen" nennen, können Sie das mit einer Änderung tun.
-UY89j99j9jasd
group_name: "moderators" //or 'people who pwn'
-Y888jasjdjaos
group_name: "dudes"
3) kippen Sie Ihre Logik und speichern Sie die Benutzer in einem Moderator oder Benutzerknoten.
users
uid_0
"date_of_birth": "June 23, 1912",
"full_name": "Alan Turing",
"nickname": "Alan The Machine"
uid_1
"date_of_birth": "June 23, 1912",
"full_name": "Alan Turing",
"nickname": "Alan The Machine"
uid_2
"date_of_birth": "June 23, 1912",
"full_name": "Alan Turing",
"nickname": "Alan The Machine"
und die Gruppen
-U8asdjoasjds
group_name: "moderators"
members:
uid_0: true
uid_2: true
-Yuiis9isisis
group_name: "users"
members
uid_1: true
Jetzt können Sie leicht alle Kinder in der Benutzer/Mitglieder-Gruppe erhalten und fügen Sie sie in die Gruppenmoderatoren, und Sie können auch die Namen der Gruppen ändern Gut.
4) nicht empfohlen,
administrators
uid_0: true
uid_2: true
users
uid_1: true
dies ist ähnlich wie # 3, aber der Schlüssel ist den Gruppentyp zu identifizieren. Gleicher Deal wie 3, erhalten die Kinder der Benutzer und schreiben sie an die Administratoren. In der Regel empfiehlt es sich, die Schlüsselnamen von den Daten zu trennen, die in den Daten enthalten sind, aber in diesem Fall ist es möglicherweise in Ordnung.
Natürlich kann ich nur alle Benutzer mit der Gruppe X Schleife durch das Objekt und ändern Sie alle Gruppe X in Gruppe Y und danach schreiben Sie die gesamte Daten über Update zurück, aber ich bezweifle, dass dies der beste Ansatz für eine DB mit ist Tausende von Benutzern. Was ich suche ist im Grunde, was ich in MySQL tun würde (update WHERE group = x) – Oliver