2017-02-22 5 views
0

Ich möchte Chiffre nutzen, um etwas von der Form zurückzukehren:kombiniert Eigenschaften in cypher

{ 
    name: 'Name of Parent Node', 
    property1 : 'some property of parent node', 
    property2 : 'some other property' 
    children: [...some array of children...] 
} 

Bisher habe ich die folgenden getan:

MATCH (p:Parent)-[:SOME_RELATIONSHIP]->(c:Child) 
WITH collect(c) as children, p 
RETURN {properties: properties(p), children: children} 

Welche ein bisschen ähnlich, was Ich will aber nicht genau. Gibt es eine Möglichkeit, es zusammenzuführen oder zu kombinieren, so dass ich die Eigenschaften zusammen bekomme?

Antwort

4

In Neo4j 3.1+ Sie auch Kartenprojekt verwenden können (à la GraphQL)

MATCH (p:Parent)-[:SOME_RELATIONSHIP]->(c:Child) 
RETURN p {.property1, .property2, children: collect(c)} AS info 

Sie können auch nur ein paar wählen Eigenschaften von dem Child-Knoten:

MATCH (p:Parent)-[:SOME_RELATIONSHIP]->(c:Child) 
RETURN p {.property1, .property2, 
      children: collect(c {.cprop1, .cprop2}) 
     } AS info 

https://neo4j.com/blog/cypher-graphql-neo4j-3-1-preview/

+0

Gibt es eine Möglichkeit, dies zu tun, ohne jeden Eigenschaftsnamen explizit einzugeben? –

+0

willst du ALLE Eigenschaften dann? –

+0

Ah ich sehe das '. *' Danke! wird deine Antwort akzeptieren –

0

Wenn Sie immer dieselben Eigenschaften von übergeordneten Knoten zurückkehren

MATCH (p:Parent)-[:SOME_RELATIONSHIP]->(c:Children) 
WITH collect(c) as children,p 
return p.name as name,p.firstproperty,p.secondproperty,children 
+0

Gibt es eine Möglichkeit, dies zu tun, ohne jeden Eigenschaftsnamen explizit einzugeben? –

Verwandte Themen