尋ねられたときにのみ、graphqlでディープネストされたオブジェクトをフェッチするにはどうすればよいでしょうか。 私はパフォーマンスが賢明GraphQLでディープネストされたドキュメントを取得する
次のmongo /マングーススキーマを考えてみましょうここを話している:
User
|
|_ Name
|
|_ Friends (RefId into User)
|
|_ User
|
|_ Friends (RefId into User)
.....
は、各ユーザーが順番に他の多くの友人を持っている多くの友人、 方法があるとしどれくらい深くあなたがpopulate
resolve
の機能の中に必要なのか決定するでしょうか?
"just populating"という単純な方法は、クエリの多くが0レベルにあるname
フィールドを選択するだけで、データベースの1/2を占有する可能性があるため、有害な可能性があります。
ありがとうございます。
理由だけではなく、親のユーザーさんの友達フィールド内で見つかったユーザーを返しませんか?特定の深さに友人の友人を熱心に積み重ねようとしていますか?そうであれば、すでに他の友人の友人である友人の友人には注意する必要があります。そのため、無限ループはありません。 –
@BrendanTurner私がここで作ろうとしているのは、「周期的なループ」ではなく、動的にどのくらい深く取り込むべきかを動的に決定する方法です。 ジョブフィールドを持つ友人を持つユーザー。クエリの中には第3レベルの入れ子にする必要があるものもありますが、名前を取得するだけのものもあります。 –
右のように、クエリで指定します。ここでは明確にする必要がある要点があります:https://gist.github.com/xpepermint/7376b8c67caa926e19d2 –