为什么标签(n)函数没有返回正确的计数?

时间:2018-02-13 19:17:20

标签: neo4j cypher

我想计算图表中的标签数量并执行以下操作:

match (n) return (count(labels(n)))

当我从浏览器中以不同颜色突出显示的列出标签中看到时,此语句返回的计数与计数不同。浏览器中列出的标签多于函数返回的计数。

为什么?

2 个答案:

答案 0 :(得分:1)

您的查询是获取每个节点的标签集合,然后计算有多少集合,这与节点数量相同。

要获取数据库中标签数量的计数,您可以使用APOC过程apoc.meta.stats,该过程返回各种数据库统计信息。对于您的具体情况,您可以这样做:

CALL apoc.meta.stats() YIELD labelCount
RETURN labelCount;

答案 1 :(得分:0)

此cypher查询将返回节点标签及其计数列表:

match (n) return labels(n),count(n)

如果您正在寻找特定标签的计数,请使用

match (n:{your label}) return count(n)

如果您想要计算不同标签的数量:

match (n) with collect(distinct labels(n)) as NL return size(NL)