2016-08-03 14 views
2

Verwendung von Relais + GraphQL (graphql-Relais-js) Verbindungen und versucht, die beste Art und Weise zu bestimmen, Anfragen an die Datenquelle zu optimieren usw.GraphQL + Relay-Verbindung Optimierung

Alles funktioniert, wenn auch ineffizient, wenn die Verbindung Ergebnisse geschnitten. Im folgenden Abfragebeispiel erhält der Resolver für das Element 200+ Datensätze zum Verkauf 727506341339, in Wirklichkeit müssen wir nur 1 zurückgeben.

Ich sollte beachten, dass, um diese Anfrage zu erfüllen, wir tatsächlich zwei db-Abfragen machen: 1. Erhalten Sie alle Artikel IDs mit einem Verkauf verbunden 2. Erhalten Sie Artikeldaten für jede Artikel-ID.

Beim Testen und Überprüfen der graphql-relay-js src sieht es so aus, als würde der Slice beim letzten Verbindungsresolver passieren.

Gibt es eine Methode zur Verfügung, die Verschachtelung Verbindungen oder Mutation der geschnittenen Ergebnisse von connectionFromArray, die uns erlauben würde, die Ergebnisse der Verbindung (Element IDs) Slice Slice und dann in den Verbindungs-Resolver die Elementdetails abrufen bereits geschnittene ID Ergebnismenge? Dies würde die zweite Abfrage optimieren, so dass wir nur für 1 Elemente Details, nicht alle Elemente abfragen müssten ...

Offensichtlich können wir etwas benutzerdefinierte oder nest Verbindungen implementieren, obwohl es scheint, dass dies etwas wäre, so würde nützen ich fühle mich wie ich hier etwas fehlt bin ...

Beispiel Abfrage:

query ItemBySaleQuery { 
    viewer { 
     item (sale: 727506341339) { 
     items (first:1){ 
      edges { 
      node { 
       dateDisplay, 
       title 
      } 
      }    
     } 
     } 
    } 
    } 
+0

Sie können Ihr Problem durch meine Antwort im folgenden Link lösen: https://StackOverflow.com/Questions/34948216/How-to-Manage-Cursors-and-Sorting-in-Relay/47865016#47865016 –

Antwort