是否可以在单个密码查询中提取有限的节点集和节点总数?
match (n:Molecule) with n, count(*) as nb limit 10 return {N: nb, nodes: collect(n)}
上述查询正确返回节点,但返回1作为节点数。我当然理解为什么它返回1,因为没有分组,但无法弄清楚如何纠正它。
答案 0 :(得分:9)
以下查询返回整行数的计数器(我猜是需要的)。然后它再次匹配并限制您的搜索,但原始计数器仍然可用,因为它是通过WITH
语句传递的。
MATCH
(n:Molecule)
WITH
count(*) AS cnt
MATCH
(n:Molecule)
WITH
n, cnt LIMIT 10
RETURN
{ N: cnt, nodes:collect(n) } AS molecules
答案 1 :(得分:1)
这是另一种解决方案:
match (n:Molecule) return {nodes: collect(n)[0..5], n: length(collect(n))}
对于30k节点,84 ms,更短但不如wassgren提出的上述节点有效。