2014-09-09 4 views
5

Ich verstehe, dass Knoten und Beziehung Eigenschaften auf primitive Typen oder Arrays von primitiven Typen beschränkt sind. Die "Karte" des Neo4j 2.1 Reference Card erwähnt, dass:Verschachtelte Maps und Sammlungen in Neo4j 2

{name: 'Alice', Alter: 38, Adresse: {Stadt: 'London', Wohn: true}}

Wörtliche Karten sind in geschweiften Klammern ähnlich wie Eigenschaftskarten deklariert. Verschachtelte Maps und Sammlungen werden unterstützt.

Natürlich so etwas wie:

CREATE (alice {name:'Alice', age:38, address:{city:'London', residential:true}}) 

löst eine Ausnahme:

Error: Property values can only be of primitive types or arrays thereof Neo.ClientError.Statement.InvalidType 

In welchem ​​Zusammenhang hat Neo4j verschachtelte Karten und Sammlungen unterstützen?

Antwort

4

(Edited)

Die Referenzkarte ist ein bisschen zu subtil. Das wichtigste Wort ist "wörtlich". Mit anderen Worten, Sie können nur willkürlich verschachtelte Maps und Arrays in Literalen verwenden, aber Sie können solche Dinge nicht in einem Knoten oder einer Beziehung speichern.

Zum Beispiel funktioniert die:

WITH {name:'Alice', age:38, address:[{city:'London', residential:true}, {city: 'Paris', residential: false} ]} AS x 
RETURN x; 

Aber das scheitert:

CREATE (x {name:'Alice', age:38, address:[{city:'London', residential:true}, {city: 'Paris', residential: false} ]}) 
RETURN x; 
+1

so wie man sie speichert? –

0

Es ist ein Weg, dies zu tun durch verschachtelte Karten zu JSON-String zu konvertieren. Beantwortete here