查询节点match
match(d:Disease) return d
条件查询
match(d:Disease {oid: "xxx1"}) return d
返回Return
return 的作用是在match匹配上了以后,选择哪些返回,如果能确定返回的属性,尽量不要全部返回!如果没有匹配上,则没有任何信息返回。
- Return的语法很简单,需要什么就返回什么,*表示返回所有的。
MATCH p =(a { name: 'A' })-[r]->(b) RETURN * # 返回a,b,r,p match中提到的所有信息
返回的结果就是所有的信息:
- 在
return
中,还可以像传统sql那样,通过as来改名:
MATCH (a { name: 'A' }) RETURN a.age AS NewName # 将返回的结果字典的key由n.age改为NewName
- 对于没有属性的会返回一个
null
,比如:
MATCH (n) RETURN n.age # 如果n没有age属性,则返回null
MATCH (n) RETURN n.age # 如果返回的多个结果,有age这个属性正常返回,没有age属性的返回null。
- 还可以运行一个布尔运算,并且也支持返回多个元素:
MATCH (a { name: 'A' })
RETURN a.age > 30, "literal",a # 可以返回三个值,第一个是bool值,第二个是字符串,第三个是节点
- 也可以和
DISTINCT
连着用
MATCH (a { name: 'A' })-->(b) RETURN DISTINCT b # 可以去除重复的节点
OPTIONAL MATCH
这个和match差不多,区别在于当没有查到东西的时候,会返回一个null,下面例子是前面match上,后面match不上的时候,会返回null,如果前面match不上也不会返回值
match(p:Person {name: 'reba'}) optional match (p) -->(x) return x # 存在name为’reba'的人,但是其与其他人没有关系,那么会返回null,如果'reba'这个人名不存在则没有任何返回信息
即如果把optional
去掉,结果是: