匹配所有包含相同标签值的节点,而不知道该值

时间:2019-08-21 13:14:49

标签: neo4j

我的节点都是网络主机。属性之一是IP地址。我要匹配所有具有相同IP地址的主机。无需输入任何IP地址

我尝试了以下代码-无济于事。继续,最终超时。 大约25000个节点。

MATCH (n), (m)
WHERE ID(n) < ID(m) AND ANY(x IN n.ip WHERE x IN m.ip)
RETURN n, m;

1 个答案:

答案 0 :(得分:0)

因此,您只想按公用IP值对节点进行分组?您只需要一个MATCH和一个collect()即可:

MATCH (n)
WITH n.ip as ipAddress, collect(n) as nodes
WHERE size(nodes) > 1
RETURN ipAddress, nodes

如果希望按每个IP地址的最多节点顺序对其进行排序,则可以选择添加ORDER BY size(nodes) DESC