Neo4j Cypher:从已删除的关系中获取信息

Neo4j Cypher:从已删除的关系中获取信息,neo4j,cypher,Neo4j,Cypher,MATCH(n:Topic{mongoId:{{u id}})-[r]()删除n,r返回r 返回错误“error:Relationship 1509 has deleted” 但是,我需要r.mongoId删除另一个数据库中的条目 如何使用Neo4j 2.2.3实现这一点 我是通过网络来做这件事的。是否有方法收集属性、删除关系并返回集合 我只需要这些数据:MATCH(n:Topic{mongoId:_id})-[r]()返回COLLECT(r.mongoId) 谢谢 在删除节点和关系之前,您可以

MATCH(n:Topic{mongoId:{{u id}})-[r]()删除n,r返回r

返回错误“error:Relationship 1509 has deleted”

但是,我需要
r.mongoId
删除另一个数据库中的条目

如何使用Neo4j 2.2.3实现这一点

我是通过网络来做这件事的。是否有方法收集属性、删除关系并返回集合

我只需要这些数据:
MATCH(n:Topic{mongoId:_id})-[r]()返回COLLECT(r.mongoId)


谢谢

在删除节点和关系之前,您可以使用
WITH
子句来别名要返回的数据。大概是这样的:

MATCH (n:Topic {mongoId: {_id} })-[r]-() 
WITH r.mongoId as docId, n,r 
DELETE n,r 
RETURN docId
或者您可以将其分为两个查询,一个用于检索所需的属性,第二个用于删除关系和节点

编辑:您很可能希望指定一个定向关系,以避免重复返回的
docId
属性:

MATCH (n:Topic {mongoId: {_id} })-[r]->()
...

我没有完全理解你的编辑。重复的id也没那么糟糕。但是,如果我引导关系,我会错过(n:)中的r,你是对的-引导关系模式的有用性取决于你的数据模型。如果您的数据模型同时允许(:Topic)-[]->()和(:Topic)