Neo4j - 使用UNWIND和MERGE带错误的嵌套集合:属性值只能是基本类型或其数组

时间:2016-01-07 21:28:57

标签: neo4j cypher

我有这种收藏品:

datas = {name:'Mahsa', address:[{city:'Berlin', residential:true}, {city: 'Paris', residential: false} ]}

 UNWIND { datas } AS data
 MERGE (p:Person { name : '" + data.name + "'  } ) ON CREATE SET p.address=" + data.address+ "

我收到此错误:“属性值只能是原始类型或其数组”

我已阅读此链接:Nested Maps and Collections in Neo4j 2

我的问题是:当我无法删除“x”时,我该怎么办? (x {姓名:'Alice',年龄:38岁,地址:[{city:'London',住宿:true},{city:'Paris',住宿:false}]})

因为我正在解开它而不是简单的WITH。

我也读到了:Nested Map With Create or Merge Statement

  

嵌套映射作为cypher和expression中的构造支持   结果,返回值但不在底层的Neo4j存储中。

Neo4j是否可能接受嵌套集合进行存储?

1 个答案:

答案 0 :(得分:2)

Property values can not be nested。这意味着,例如,数组属性只能包含原始值(相同类型)。

您可能需要考虑使用与每个Address相关的单独Person个节点。