neo4j - Neo4j 如何查询所有子节点
问题描述
在图片中,您可能会看到一个图表示例。如果我做查询
MATCH (u:UserNode)-[:PROMOTER_OF]->(c:UserNode)
where u.promoterName="Antal"
RETURN u;
我只得到 MAIEREAN 的结果。但是如果我扩展 MAIEREAN,我可以看到拥有 MESTER、NICA 和 SOMOGYI 的 SAMOILA 等等……
我想知道:从 Antal 开始,我如何编写查询以显示从第一个到最后一个的所有子、孙、曾孙等?(仅供参考:我事先不知道层次结构有多长)。
我知道像 OPTIONAL MATCH 这样的东西,所以我尝试了这个
Match (u:UserNode)
WHERE u.promoterName="Antal"
OPTIONAL MATCH (u)-[:PROMOTER_OF]->(c:UserNode)
RETURN c;
但它会返回相同的
解决方案
也许您正在寻找:
MATCH (u:UserNode{promoterName:"Antal"})-[:PROMOTER_OF*]->(c:UserNode)
RETURN c;
您可以将数字与星号(例如 PROMOTER_OF* 3)或范围(例如 PROMOTER_OF* 1..5)一起添加。如果您有大量数据,我不建议您使用裸星号。
推荐阅读
- c# - 车速表指针旋转统一
- android - 无限滚动列表视图 - 在构建期间调用 setState() 或 markNeedsBuild
- java - 从 MainActivity 访问一个单独的进程
- angular - ng6:在 html 中动态形成变量名
- javascript - 对 flatList 中的项目进行排序
- django - Django inlineformset 如何不显示 id
- angular-material - mat-select disabled 没有从 angular5 的范围内拾取变量
- ios - UITableViewController 作为较小视图中的子视图控制器 - 键盘问题
- python - 使用rpdb远程调试Python服务器
- excel - 如何“停用”或切换回 Excel 工作簿