2017-09-11 18 views
7

[: FRIENDS {since: "11/2015"}] gibi özelliklere sahip ilişkilere sahip bir Neo4j DB sahibim. GraphQl Schema'daki "beri" özelliğini temsil etmem gerekiyor. RÖLE bir şey "kenarları" vardır, görünüşe göre bu özelliği nasıl uyguladıkları budur ama RELAY kullanmıyorum ..... Ben Apollo'da bir şey görmedim (belki de onu özledim). Birisi bana bunu nasıl yapılacağını gösterebilir mi?Graphql Schema'mdaki Neo4j ilişki özelliklerini nasıl gösteririm?

+0

Aşağıdaki iyi yazılmış bir blogu yanıtıma yönlendirebilirim .... https: //dev-blog.apollodata.com/explaining-graphql-connections-c48b7c3d6976 – MichaelE

cevap

6

Tamam ... istediğim şeyi elde etmek için hem düğüm hem de ilişkiyi (edge) grafql olarak sunmak için, object.assign (node, relationship) döndürerek bir çalışmayı arayacağımı yaptım) graphql .... dezavantajı, birleşik notayı elde etmek için nodeRel {} tipini tanımlamak zorunda olduğum fakat işe yaradığıdır. Ayrıca, düğüm ve ilişki nesneleri benzer adlandırılmış özelliklere sahip olamaz.

... memberOf : [Group] 
    groupStatus : [MemberProfile] 
    attended : [Meeting] 
    submittedReport : [Report] 
    post  : [Post] 

} 

type MemberProfile { 
    name   : String 
    location  : String 
    created  : String 
    since   : String 
    role   : String 
    financial  : Boolean 
    active  : Boolean 
    } 

Çözümleyici:

groupStatus(voter) { 
      let session = driver.session(), 
       params = { voterid: voter.voterid }, 
       query = ` 
         MATCH (v:Voter)-[r:MEMBER_OF]->(g:Group) 
         WHERE v.voterid = $voterid 
         RETURN g AS group,r AS rel; 
         ` 
      return session 
       .run(query, params) 
       .then(result => { 
        return result.records.map(record => { 
         return Object.assign(record.get("group").properties, record.get("rel").properties) 
        }) 
       }) 
     }, 

Şimdi uzun John ve Mary arkadaşları veya hangi gruplar John aittir ve ne kadar o bir üyesi .... Şema pasajı olmuştur ne kadar soruya cevap verebilir Umarım bu başka birine yardım eder ....