Neo4j cypher查询返回不同的计数结果
我想要一个从节点开始的查询,它统计给定关系类型的可能结束节点: 例如,此查询:Neo4j cypher查询返回不同的计数结果,neo4j,cypher,Neo4j,Cypher,我想要一个从节点开始的查询,它统计给定关系类型的可能结束节点: 例如,此查询: MATCH (start:typeA{my_id:"abc"})-[:rel]->(l:typeB) return count(l) 非常有效,并返回一个正确的数字,即500。同样的情况也发生在: MATCH p=(start:BusStop{StopCode:"0247"})-[:CAN_BOARD]->(:Leg) return count(p) 但是,如果我这样做: MATCH (start:t
MATCH (start:typeA{my_id:"abc"})-[:rel]->(l:typeB) return count(l)
非常有效,并返回一个正确的数字,即500。同样的情况也发生在:
MATCH p=(start:BusStop{StopCode:"0247"})-[:CAN_BOARD]->(:Leg) return count(p)
但是,如果我这样做:
MATCH (start:typeA{my_id:"abc"}) return count((start)-[:rel]->(:typeB))
返回1
此查询与以前的查询有什么区别?路径表达式的结果(在上次查询中使用)是一个路径列表。这与在
MATCH
子句中使用相同路径模式时的结果不同
如果将上一个查询更改为使用SIZE()
而不是COUNT()
,您将得到500
:
路径表达式(在上次查询中使用)的结果是路径列表。这与在
MATCH
子句中使用相同路径模式时的结果不同
如果将上一个查询更改为使用SIZE()
而不是COUNT()
,您将得到500
:
MATCH (start:typeA{my_id:"abc"}) return SIZE((start)-[:rel]->(:typeB))