我知道节点和关系属性仅限于基本类型或基本类型数组.Neo4j 2.1参考卡的"地图"部分提到:
{姓名:'Alice',年龄:38岁,地址:{city:'London',住宿:true}}
文字地图用花括号声明,就像属性地图一样.支持嵌套地图和集合.
当然是这样的:
CREATE (alice {name:'Alice', age:38, address:{city:'London', residential:true}})
Run Code Online (Sandbox Code Playgroud)
抛出异常:
Error: Property values can only be of primitive types or arrays thereof Neo.ClientError.Statement.InvalidType
Run Code Online (Sandbox Code Playgroud)
在什么情况下Neo4j支持嵌套的地图和集合?
(已编辑)
参考卡有点太微妙了。最重要的一个词就是“字面意思”。换句话说,您只能在文字中使用任意嵌套的映射和数组,但不能将这些东西存储在节点或关系中。
例如,这有效:
WITH {name:'Alice', age:38, address:[{city:'London', residential:true}, {city: 'Paris', residential: false} ]} AS x
RETURN x;
Run Code Online (Sandbox Code Playgroud)
但这失败了:
CREATE (x {name:'Alice', age:38, address:[{city:'London', residential:true}, {city: 'Paris', residential: false} ]})
RETURN x;
Run Code Online (Sandbox Code Playgroud)