Neo4j的。创建约束以计算类型为“RT”的关系?

时间:2017-11-11 14:46:41

标签: neo4j path cypher

我使用此代码获取包含两个较少关系a的节点bRT之间的路径。

MATCH (a:Tes1 { title: "a" }),(b:Tes1 { title: "b" }), p=shortestPath((a)-[r:BT|RT*]-(b))
WITH count(type(r)='RT') as cnt
WHERE cnt < 3
RETURN p;

错误:

  

类型不匹配:预期关系但是列表(第2行,第17列(偏移:111))   “WITH count(type(r)='RT')为cnt”

我知道这个错误意味着但我不知道另一种方式。 请帮忙

1 个答案:

答案 0 :(得分:1)

您无法计算特定类型的集合,您需要对其进行过滤并获取其大小:

MATCH (a:Tes1 { title: "a" }),(b:Tes1 { title: "b" }), p=shortestPath((a)-[r:BT|RT*]-(b))
WITH p, filter(x IN relationships(p) WHERE type(x) = "RT") AS rtRels
WHERE size(rtRels) < 3
RETURN p;