Cypher支持的类型分为三类:属性类型,复合类型和结构类型。
属性类型
属性类型:Integer、Float、String和Boolean
Boolean类型:true, false, TRUE, FALSE
String类型:'Hello', "World"
复合类型
复合类型:List和Map,List是有序的值的集合,Map是无序的Key/Value对的集合,通常用于存储节点和关系的属性。
List类型:['a', 'b'], [1, 2, 3], ['a', 2, n.property, $param], [ ]
Map类型:n是节点,prop是节点的属性键,引用属性的值的格式:n.prop,
List类型
由标量类型构成的List,例如,['a', 'b'], [1, 2, 3]
由函数range函数生成的List对象,例如,range(0,10),从start到end的有序数字,Range函数包含两端。
列表(List comprehension):[x IN range(0,10) WHERE x % 2 = 0 | x^3]
Map类型
列表的常量表示:{ key: 'Value', listKey: [{ inner: 'Map1' }, { inner: 'Map2' }]}
Map投影,用于从节点、关系和其他Map对象中投影特定元素或变量的值,Map投影的格式是:
map_variable {map_element, [, …n]}参数注释:
- map_variable:用于引用Map对象 map_element 有四种格式是:
- 属性选择器:格式是 .Key,用于引用Map对象中的属性
- 嵌入属性(Literal entry),是一个Key/Value对,例如,key: expression,表示嵌入到Map变量中的元素
- 变量选择器:把一个变量的名称作为Key,变量的值作为Key的值,构建一个Key/Value对,作为Map变量中的元素
- 属性全选符号: .*
Map投影的示例,actor是Map变量,nrOfMovies是变量,从Map变量中获取name属性,并添加额外的属性nrOfMovies:
MATCH (actor:Person)-[:ACTED_IN]->(movie:Movie)
WITH actor, count(movie) AS nrOfMovies
RETURN actor { .name, nrOfMovies }结构类型
结构类型:Node类型、关系类型、Path类型:
- 其中Node类型表示一个节点,由Id、Label和Map构成;
- 关系类型表示一个关系,由Id、Type、Map和 关系两端的两个节点的Id构成;
- Path类型表示路径,是节点和关系的序列。Path模式:(a)-->()<--(b)
评论列表(0条)