Cypher返回总节点数以及有限集

Pie*_*rre 8 neo4j cypher

是否有可能在单个密码查询中提取有限的节点集和节点总数?

match (n:Molecule) with n, count(*) as nb limit 10 return {N: nb, nodes: collect(n)}
Run Code Online (Sandbox Code Playgroud)

上面的查询正确返回节点,但返回1作为节点数.我当然明白为什么它返回1,因为没有分组,但无法弄清楚如何纠正它.

was*_*ren 9

以下查询返回整个行数的计数器(我猜是需要的).然后它再次匹配并限制您的搜索,但原始计数器仍然可用,因为它通过WITH-statement进行.

MATCH 
    (n:Molecule)
WITH 
    count(*) AS cnt
MATCH 
    (n:Molecule)
WITH 
    n, cnt LIMIT 10
RETURN 
    { N: cnt, nodes:collect(n) } AS molecules
Run Code Online (Sandbox Code Playgroud)

  • 如果MATCH实际上涉及很多怎么办?重复它会导致性能下降,还是Neo4j足够聪明,可以重用第一场比赛的结果? (4认同)