-
Predicates 谓语断言
-
n.property <> $value 使用比较符 -
exists(n.property) 使用函数 -
n.number >= 1 AND n.number <= 10 使用布尔运算的联合断言 -
1 <= n.number <= 10 使用运算符的联合断言 -
n:Person 检查节点的label -
variable IS NULL 检查是否为null -
NOT exists(n.property) OR n.property = $value 使用或条件 -
n.property = $value 属性值判断 -
n["property"] = $value 动态的获取属性 -
n.property STARTS WITH 'Tim'
-
n.property =~ 'Tim.*' 字符串正则匹配 -
(n)-[:KNOWS]->(m) n到m存在KNOWS关系 -
NOT (n)-[:KNOWS]->(m) n到m不存在KNOWS关系 -
n.property IN [$value1, $value2] 检查属性值在列表中
-
List Predicates 列表断言
-
all(x IN coll WHERE exists(x.property)) 当列表中所有元素的断言都为true时,返回true -
any(x IN coll WHERE exists(x.property)) 当列表中至少有一个元素的断言都为true时,返回true -
none(x IN coll WHERE exists(x.property)) 当列表中所有元素的断言都为false时,返回true -
single(x IN coll WHERE exists(x.property)) 当列表中所有元素仅有一个元素的断言都为true时,返回true
-
CASE
-
CASE n.eyes
-
CASE
-
List Expressions 列表表达式
-
size($list) 列表长度或列表元素数量 -
reverse($list) 反转列表顺序 -
head($list), last($list), tail($list) head()列表第一个元素, last()列表最后一个元素, tail() 列表除第一个元素外所有元素 -
[x IN list | x.prop] 以元素的某一属性值作为新元素的列表 -
[x IN list WHERE x.prop <> $value] 过滤列表元素,元素使断言为真 -
[x IN list WHERE x.prop <> $value | x.prop] 过滤列表元素,元素使断言为真,并以过滤后元素的某一属性值作为新元素的列表 -
reduce(s = "", x IN list | s + x.prop) 逐个拼接元素属性值
-
MATCH 匹配
-
MATCH (n:Person)-[:KNOWS]->(m:Person)
-
MATCH (n)-->(m) 匹配n到m存在某种关系 -
MATCH p = (n)-->(m) 匹配n到m的路径 -
OPTIONAL MATCH (n)-[r]->(m) 选择性匹配,null将会使用在丢失的部分
-
WHERE 条件语句
-
WHERE n.property <> $value 使用断言作为过滤 -
WHERE EXISTS {
-
RETURN 返回语句
-
RETURN * 返回所有变量 -
RETURN n AS columnName 返回结果别名 -
RETURN DISTINCT n 返回去重结果 -
ORDER BY n.property 返回结果按照属性值排序 -
ORDER BY n.property DESC 降序 -
SKIP $skipNumber 跳过数目 -
LIMIT $limitNumber 结果数限制范围 -
SKIP $skipNumber LIMIT $limitNumber 跳过一定数量返回一定范围数的结果 -
RETURN count(*) 返回结果的数量
-
WITH
-
MATCH (user)-[:FRIEND]-(friend) WHERE user.name = $name
-
MATCH (user)-[:FRIEND]-(friend)
-
UNION
-
MATCH (a)-[:KNOWS]->(b) RETURN b.name
-
MATCH (a)-[:KNOWS]->(b) RETURN b.name
-
CREATE 创建
-
CREATE (n {name: $value}) 创建具有属性的节点 -
CREATE (n $map) 创建具有多个属性的节点 -
UNWIND $listOfMaps AS properties
-
CREATE (n)-[r:KNOWS]->(m) 创建给定方向关系 -
CREATE (n)-[:LOVES {since: $value}]->(m) 创建具有属性值的关系
-
SET 设定或改
-
SET n.property1 = $value1,
-
SET n = $map 重新设定n的属性值 -
SET n += $map 为n添加没有新的属性值,已有更新 -
SET n:Person 为节点添加label
-
MERGE
-
MERGE (n:Person {name: $value})
-
MATCH (a:Person {name: $value1}), (b:Person {name: $value2})
-
DELETE 删除
-
DELETE n, r 删除节点、关系 -
DETACH DELETE n 删除节点及与节点相连接的关系 -
MATCH (n) DETACH DELETE n 删除库里所有节点及关系
-
REMOVE 删除
-
REMOVE n:Person 删除节点标签 -
REMOVE n.property 删除属性
-
FOREACH 循环
-
FOREACH (r IN relationships(path) | SET r.marked = true) 循环路径中所有关系,并设定属性 -
FOREACH (value IN coll | CREATE (:Person {name: value}) 循环列表中元素并执行创建具有属性的节点
未完待续。。。
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载