Neo4j / Cypher - 如何使用AND子类别检索类别

时间:2017-05-23 23:15:58

标签: neo4j cypher

使用示例here,以下查询将返回所有类别及其子类别:

MATCH p=(n:Category)-[:subcategory*]->(m)
WHERE NOT ()-[:subcategory]->(n)
WITH COLLECT(p) AS ps
CALL apoc.convert.toTree(ps) yield value
RETURN value;

如何将查询修改为同样获取没有子类别的类别?

1 个答案:

答案 0 :(得分:1)

小调整应该这样做:

MATCH p=(n:Category)-[:subcategory*0..]->(m)
WHERE NOT ()-[:subcategory]->(n)
WITH COLLECT(p) AS ps
CALL apoc.convert.toTree(ps) YIELD value
RETURN value;

*0..模式包括0长度路径(即没有子类别的路径)。