Cypher函数是对图进行查询和操作的重要工具。
一,谓词函数
谓词函数返回true或者false,主要用于检查是否存在或满足特定的条件。
1,Exists
如果指定的模式存在于图中,或者特定的属性存在于节点、关系或Map中,那么函数返回True
例如,节点具有name属性,并check图中是否存在特定的模式:
MATCH (n)
WHERE exists(n.name)
RETURN n.name AS name, exists((n)-[:MARRIED]->()) AS is_married
2,检查集合元素
all()表示所有的元素都满足条件,any()表示至少一个元素满足条件,none()函数表示没有一个元素满足条件,single()表示只有一个元素满足条件
例如,ALL谓词表示,在路径中,所有节点都必须具有age属性,并且age属性值都必须大于30:
MATCH p =(a)-[*1..3]->(b)
WHERE a.name = 'Alice' AND b.name = 'Daniel' AND ALL (x IN nodes(p) WHERE x.age > 30)
RETURN p
ANY谓词表示,节点的array属性中至少有一个元素值是one:
MATCH (a)
WHERE a.name = 'Eskil' AND ANY (x IN a.array WHERE x = 'one')
RETURN a.name, a.array
NONE谓词表示,在路径中,没有节点的age属性等于25
MATCH p =(n)-[*1..3]-