Neo4j 接收总数后筛选节点

Neo4j 接收总数后筛选节点,neo4j,cypher,Neo4j,Cypher,因此,我有以下疑问: MATCH (n:Mob) WITH count(n) as total, collect(n) as nodes WITH nodes, total UNWIND nodes as node WHERE node.order > 8000 AND node.order < 8100 RETURN node, total 匹配(n:Mob) 计数(n)为总计,收集(n)为节点 对于节点,总计 将节点作为节点展开 其中node.order>8000和node.o

因此,我有以下疑问:

MATCH (n:Mob)
WITH count(n) as total, collect(n) as nodes
WITH nodes, total
UNWIND nodes as node
WHERE node.order > 8000 AND node.order < 8100
RETURN node, total
匹配(n:Mob)
计数(n)为总计,收集(n)为节点
对于节点,总计
将节点作为节点展开
其中node.order>8000和node.order<8100
返回节点,总计
我试图做的是将节点总数(使用标签Mob)作为一个数字,然后过滤实际返回的节点,这样我就得到了总节点的子集


这当前给了我错误
无效输入'H':应为'i/i'
。在一个查询中是否有我想要的操作,或者是否需要将其拆分为两个?

展开
匹配
子句之间需要一个
WITH
子句。这应该起作用:

MATCH (n:Mob)
WITH COUNT(n) as total, COLLECT(n) as nodes
UNWIND nodes as node
WITH total, node
WHERE 8000 < node.order < 8100
RETURN total, node

塞伯萨姆的回答补充道。为了跳过/限制列表,您需要执行[x..y],其中x和y是数字,即

MATCH (n:Mob)
RETURN [m IN COLLECT(n) WHERE 8000 < m.order < 8100][0..10] AS nodes, COUNT(n) AS total

啊,您的第二个查询更适合我所寻找的,因为它作为分页格式更有意义。我希望我能给你另一个+1来思考意图!是否可以在查询中的某个位置设置
跳过限制
MATCH (n:Mob)
RETURN
  COUNT(n) AS total,
  [m IN COLLECT(n) WHERE 8000 < m.order < 8100][$skip..($skip+$limit)] AS nodes
MATCH (n:Mob)
RETURN [m IN COLLECT(n) WHERE 8000 < m.order < 8100][0..10] AS nodes, COUNT(n) AS total
MATCH (n:Mob)
WITH COUNT(n) as total, COLLECT(n) as nodes
UNWIND nodes as node
WITH total, node
WHERE node.order > 1000
WITH total, node
SKIP 10
LIMIT 5
WITH collect(node) as nodes, total
RETURN nodes, total