Neo4j 如何查询所有 children 个节点

Neo4j How to query to all children nodes

在图片中,您可能会看到一个图表示例。 如果我查询

MATCH (u:UserNode)-[:PROMOTER_OF]->(c:UserNode)
where u.promoterName="Antal"
RETURN u;

我只得到 MAIEREAN 结果。但是如果我展开 MAIEREAN,我可以看到 SAMOILA 有 MESTER、NICA 和 SOMOGYI 作为 children 等等...

我想知道:从 Antal 开始,我如何编写查询才能显示所有 children、孙子、曾祖 children 等等,从第一个到第一个最后一个? (仅供参考:我事先不知道层次结构有多长)。

我知道像 OPTIONAL MATCH 这样的东西,所以我尝试了这个

Match (u:UserNode)
WHERE u.promoterName="Antal"
OPTIONAL MATCH (u)-[:PROMOTER_OF]->(c:UserNode)
RETURN c;

但它将return相同

也许您正在寻找:

MATCH (u:UserNode{promoterName:"Antal"})-[:PROMOTER_OF*]->(c:UserNode)
RETURN c;

您可以添加一个数字和星号(例如 PROMOTER_OF* 3)或一个范围(例如 PROMOTER_OF* 1..5)。 如果您有大量数据,我不建议使用纯星号。