Was wäre der beste Ansatz, um tief geschachtelte Objekte mit graphql nur zu holen, wenn Sie dazu aufgefordert werden. Ich spreche hier Leistung klugAbrufen von tief verschachtelten Dokumenten mit GraphQL
Lassen Sie uns sagen Sie folgende Mongo/Mungo Schema haben:
User
|
|_ Name
|
|_ Friends (RefId into User)
|
|_ User
|
|_ Friends (RefId into User)
.....
nehme jeder Benutzer viele Freunde, die viele andere Freunde haben wiederum hat, wie würde entscheiden, wie tief Sie benötigen populate
innerhalb einer resolve
Funktion?
Die naive Methode "nur auffüllen" kann schädlich sein, da viele der Abfragen nur das Feld name
auf der 0-Ebene auswählen, aber am Ende die Hälfte der db belegen.
Vielen Dank im Voraus.
Warum nicht einfach die Benutzer innerhalb der Freunde Feld Mutter Benutzers gefunden zurückkehren? Versuchen Sie speziell, Freunde von Freunden auf eine bestimmte Tiefe zu laden? Wenn dies der Fall ist, müssen Sie sich vor Freunden von Freunden in Acht nehmen, die bereits Freunde anderer Freunde sind, so dass Sie keine Endlosschleife haben. –
@BrendanTurner der Punkt, den ich versuche, hier zu machen, ist nicht die "zyklischen Schleifen", sondern wie wir dynamisch entscheiden, wie tief sollten wir bevölkern. wenn es Ihnen hilft, können Sie das Beispiel mit Benutzer, der Freunde hat, die ein Jobfeld haben . Jetzt müssen einige der Abfragen die Verschachtelung der 3. Ebene auffüllen, aber einige greifen nur den Namen. –
Richtig, geben Sie das in der Abfrage an. Hier ist ein Kern, der helfen sollte, zu klären: https://gist.github.com/xpepermint/7376b8c67caa926e19d2 –