neo4j - 如何在neo4j中找到特定标签的单个节点与不同标签中的所有其他节点之间的不同节点的计数?
问题描述
我有 4 种不同类型的标签和每个标签中的多个节点。假设标签 P 的节点 A 连接到标签 Q 的多个节点,并且这些节点连接到标签 R 的多个节点。现在我正在尝试计算标签 R 中连接到节点 A 的不同节点的数量直接或通过标签 Q。
解决方案
这应该有效:
MATCH path = (a:P)-[*1..2]->(r:R)
WHERE a.id = 'A' AND (LENGTH(path) = 1 OR 'Q' IN LABELS(NODES(path)[1]))
RETURN DISTINCT r
这个简单的示例假定两个关系具有一致的“前向”关系方向性。
[附录]
这应该是比评论中询问的更好的查询:
MATCH path = allShortestPaths((a:P)-[*1..2]->(r:R))
WHERE a.id = $resource_key AND (LENGTH(path) = 1 OR 'Q' IN LABELS(NODES(path)[1]))
RETURN COUNT(DISTINCT r)
推荐阅读
- laravel - AWS S3,不向用户显示图像网址(即使在检查元素中),但显示带有标签的图像
- scala - 如何在 Flink(Scala)中反序列化来自 Kafka 的 Avro 消息?
- visual-studio-code - 无法在 vs 代码中打开终端
- reactjs - Auto Suggest 组件 › 遇到声明异常
- javascript - 单击按钮后自动滚动到特定的 PHP 消息
- java - Eclipse 氧源级别更改
- r - 为一个因素为条形图添加更宽的间隙
- python-3.x - AttributeError:模块“torch.nn.functional”没有属性“resize”
- c - 如何在 gdb 中打印 OpenMP 并行区域的局部变量?
- javascript - 如何计算带有对象的数组中的特定键?