map literals neo4j 2.01

时间:2014-03-16 11:10:47

标签: properties neo4j

我正在使用neo4j 2.01 你能告诉我如何使这个地图文字有效吗?

neo4j-sh (?)$ MERGE (n:person {name:'Alice', age:38, address:{city:'London', residential:true}}) RETURN n;

MatchError: Map(city -> London, residential -> true) (of class scala.collection.immutable.Map$Map2)

提前感谢您的帮助。 马可

1 个答案:

答案 0 :(得分:1)

只有RETURN子句允许使用地图文字。节点上的Neo4j属性可以是基元,字符串或它们的数组。如果要为节点存储更复杂的值,请将复杂值分解为一组节点和关系,并将其附加到具有关系的实体节点:

MERGE (n:person {name:'Alice', age:38})-[:LIVES_IN]->(a:address {city:'London', residential:true}}) RETURN n,a;

即使residential标志被隐式编码为关系LIVES_IN,因此您可以省略它并依赖于详细的关系类型。

RETURN中使用地图文字:

match (n:person)-[:LIVES_IN]->(a:address) return {name:n.name, age:n.age, address:a}