Neo4j在一个标识符上执行多个任务

Neo4j在一个标识符上执行多个任务,neo4j,cypher,Neo4j,Cypher,在密码查询中,我有多个匹配项,我将把一个id传递给查询的第二部分 在第二部分中,我应该用另一个匹配检查结果,并为每个匹配执行一些更新任务 我可以为每一个第二部分重复第一部分,但有没有办法避免改变第一部分的结果并多次重复使用? 复制之类的东西会导致另一个标识或其他东西?如果你想匹配多个关系,例如玩、住,你可以这样做,我认为: MATCH user-[:friend*2..3]-other WHERE NOT user-[:friend]-other WITH user,other MATCH p

在密码查询中,我有多个匹配项,我将把一个id传递给查询的第二部分

在第二部分中,我应该用另一个匹配检查结果,并为每个匹配执行一些更新任务

我可以为每一个第二部分重复第一部分,但有没有办法避免改变第一部分的结果并多次重复使用?
复制之类的东西会导致另一个标识或其他东西?

如果你想匹配多个关系,例如玩、住,你可以这样做,我认为:

MATCH user-[:friend*2..3]-other
WHERE NOT user-[:friend]-other
WITH user,other
MATCH p=user-[r1:played_in|:lives_in]->(l)<-[r2:played_in|:lives_in]-other
WHERE l:University or l:City
WHERE type(r1) = type(r2)
FOREACH (path IN p | 
    MERGE startNode(path)-[k:may_know]-endNode(path)
    ON CREATE SET k.w = 1
    ON MATCH SET k.w = (k.w) +1
    )

我不知道你在问什么。你能提供一个更精确的例子吗?
MATCH user-[:friend*2..3]-other
WHERE NOT user-[:friend]-other
WITH user,other
MATCH p=user-[r1:played_in|:lives_in]->(l)<-[r2:played_in|:lives_in]-other
WHERE l:University or l:City
WHERE type(r1) = type(r2)
FOREACH (path IN p | 
    MERGE startNode(path)-[k:may_know]-endNode(path)
    ON CREATE SET k.w = 1
    ON MATCH SET k.w = (k.w) +1
    )