初学者问题。如何在Cypher中获得不同类型的边缘?
我知道如何获得数据库中的所有优势:
MATCH (a)-[r*1..1]->(b)
RETURN extract(x IN r | {rel: x})
我可以看到每个人都有TYPE
属性。但是如何对其进行优化以获得不同的TYPE?
答案 0 :(得分:1)
我认为这就是你要找的东西
MATCH (a)-[r]->(b)
RETURN distinct(type(r))
您也可以使用
call db.relationshipTypes
编辑:如果第一个没有返回任何意味着你在db中没有关系的东西,第二个可能只能从neo4j 3.1版本开始
答案 1 :(得分:1)
对于任何长度路径,您可以使用UNWIND和DISTINCT:
MATCH p = (a)-[r*1..5]->(b)
UNWIND relationships(p) as rel
RETURN distinct type(rel) as type
答案 2 :(得分:1)
builtin procedure db.relationshipTypes
将从缓存数据中快速返回所有关系类型的集合。例如:
CALL db.relationshipTypes() YIELD relationshipType
RETURN relationshipType;
在3.0.0-M05版之前,此过程名为sys.db.relationshipTypes
。