neo4j - Neo4j 密码选择查询在树状结构图中
问题描述
我是 neo4j 和 cypher 的新手,并尝试构建以下查询:从图片中选择由棕色圈出的节点和关系(A、B、C、D、E、F、G、H 和关系)因为如果我遇到一个蓝色节点,我应该将此节点添加到结果中但省略其子节点(相关节点),因此要求是树状结构。在这种情况下,关系方向并不重要。
你能帮助我吗?
编辑:并添加了第二个示例。同样,所需的结果是棕色线包围的节点。
解决方案
MATCH p=(c:LabelSystem)-[r*]->(d)
WHERE d:LabelLeaf OR d:LabelElement
WITH COLLECT(DISTINCT d) as labelElements,COLLECT(DISTINCT c) as labelSystem , c
MATCH (ls:LabelSystem)-[]-(le:LabelElement)
WHERE le IN labelElements AND ls <> c
WITH COLLECT(DISTINCT ls) as childLabelSystems,labelSystem,labelElements,c.uniqueProperty as uniqueIdentifier
WITH labelElements+childLabelSystems+labelSystem as allNodes,uniqueIdentifier
RETURN uniqueIdentifier,allNodes
如果您使用颜色作为节点内的属性,您可以相应地调整 WHERE
推荐阅读
- python - 向 wagtail 电子邮件表单提交添加标签
- scala - 将方法从伴随对象移动到类的类型不匹配
- powershell - PowerShell字符串格式函数内的不同行为
- angular - 如何组合多个服务并且不需要初始调用角度?
- sql - 满足条件后追加字符串的函数
- assembly - MIPS - 系统调用打印错误的 asciiz
- amazon-web-services - AWS Glue ETL:读取巨大的 JSON 文件格式进行处理,但出现 OutOfMemory 错误
- php - mysql php中具有数据类型的json数据
- flutter - 如何仅在 FutureBuilder 获取 snapshot.data 后加载列表?
- javascript - webRTC nodejs在vercel中部署后不起作用