在Neo4j中按类型计算关系

时间:2018-11-21 12:02:46

标签: neo4j cypher

我在数据库中有很多关系类型。如何在不使用apoc的情况下按每种类型计算关系?

2 个答案:

答案 0 :(得分:2)

解决方案

MATCH ()-[relationship]-() 
RETURN TYPE(relationship) AS type, COUNT(relationship) AS amount;

第一行指定用于定义关系变量的模式,该模式用于确定第二行中的类型和数量。

示例结果

╒══════════════╤════════╕
│"type"        │"amount"│
╞══════════════╪════════╡
│"BELONGS_TO"  │1234567 │
├──────────────┼────────┤
│"CONTAINS"    │432552  │
├──────────────┼────────┤
│"IS_PART_OF"  │947227  │
├──────────────┼────────┤
│"HOLDS"       │4       │
└──────────────┴────────┘

答案 1 :(得分:1)

3.5.x中还有一个内置过程,可用于检索计数,但是要过滤一下您感兴趣的对象,确实需要一些过滤:

CALL db.stats.retrieve('GRAPH COUNTS') YIELD data
UNWIND [data IN data.relationships WHERE NOT exists(data.startLabel) AND NOT exists(data.endLabel)] as relCount
RETURN coalesce(relCount.relationshipType, 'all') as relationshipType, relCount.count as count