递归请求?同时搜索和更新节点

时间:2017-07-27 07:14:32

标签: neo4j

我正在尝试更新节点,但我遇到了一些麻烦。

我的数据是这样的:

(node1 {prop:1})&lt ;-( node2 {prop:null})&lt ;-(node3 {prop:null})

我想更新node2 {prop:2}和node3 {prop:3},具体取决于node1 {prop1}值(+1)

我的要求是:

MATCH (n) <-[r]- (m) WHERE n.prop IS NOT NULL AND m.prop IS NULL SET m.prop = n.prop + 1;

但是这只更新了node2,我需要再次执行请求来更新node3。

有没有办法为每个节点执行此操作?我不知道我将更新多少个节点(此时我需要做10次请求,但未来可能需要15次,具体取决于数据)

非常感谢:)

1 个答案:

答案 0 :(得分:0)

您可以尝试以下查询。

//get the first node
MATCH (head{prop:1})
// match all the following
MATCH p=(head)<-[r*1..]-(node)
// set the sequence 
SET node.prop = length(p) + 1