neo4j - Neo4J 按关系匹配子节点
问题描述
我有一个图表,其中包含由其他部件组成的机械部件,我想展示一个大部件的整体组成。我图中的所有相关节点都有“结构”标签,当一个部分由其他部分组成时,存在“PartProperty”关系。所以我需要一个查询,其起点由“Vehicle”或“CombusionEngine”等名称定义,然后它应该从该节点找到所有传出的“PartProperty”关系。有些子部分也有子部分,有些则没有。
下面是一个组成的例子:
当我只匹配关系时,我只得到第一个子元素,当我匹配第二个级别时,没有子结构的元素将消失。
解决方案
下面是一个示例查询,它使用可变长度关系模式返回 指定节点的所有部分(和子部分)的路径:start
MATCH path=(start:Structure)-[:PartProperty*]->()
WHERE start.name = "CombusionEngine"
RETURN path
这是一个仅返回所有不同部分(和子部分)的变体:
MATCH (start:Structure)-[:PartProperty*]->(part)
WHERE start.name = "CombusionEngine"
RETURN DISTINCT part
推荐阅读
- powershell - Powershell - 禁用所有 cmdlet,例如 Invoke-WebRequest
- python - bash 脚本中 Python 命令的 Visual Studio 调试器
- html - 如何将 Modal 创建为视图并从 MVC 共享文件夹中的 Header 调用它
- python - TypeError:“float”类型的对象没有用于情感分析的 len()
- authentication - 角度登录问题
- c# - 如何为 ModelViusal3D 对象(模型)设置动画?
- python-3.x - 使用 pyopenssl 创建自签名证书时出错
- processing - 项目在处理运行时有效,但在我导出到 .exe 文件时无效
- python-3.x - 如何为每个依赖项指定 requirements.txt 的安装目录;不要将所有要求安装在一个目录中
- python - 在同一个事件循环中运行 Qt 和 Websockets 服务器