我正在使用Neo4j 1.9.RC2,我用WITH测试ORDER BY.我想要做的是生成动态排名并将当前排序索引存储到每个排序的节点中.
我有类似的东西:parent- [r:has_child] - > rank_node我想做的事情如下:
start n=node(1)
match n-[r:has_child]->rank_node
with rank_node
order by rank_node.score
set rank_node.position = "CURRENT ORDER BY INDEX"
Run Code Online (Sandbox Code Playgroud)
我想要一个从0增加到"n"的计数器......我无法做到这一点......
这里CURRENT ORDER BY INDEX就像每个节点按顺序返回的当前索引.
我不知道是否有可能用cyper做到这一点?这将是非常有用的,因为我们可以进行大排序并直接插入节点中的位置以便以后直接获取它...
小智 5
与Michael Hunger交谈,我们解决了这个问题:
start n=node(0)
match n-[r:rank]->rank_node
with rank_node, n
match n-[r:rank]->rn
where rn.score <= rank_node.score
with rank_node,count(*) as pos
set rank_node.rank = pos
return rank_node;
Run Code Online (Sandbox Code Playgroud)
有关实例,请参阅:http://console.neo4j.org/?id = d07p7r