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

Mic*_*ole 2 neo4j cypher

MATCH (n:Topic { mongoId: {_id} })-[r]-() DELETE n,r RETURN r;

返回错误'错误:关系1509已被删除'.

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

我如何使用Neo4j 2.2.3做到这一点?

我是通过Seraph库来做到这一点的.有没有办法收集属性,删除关系,并返回集合?

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

谢谢!

Wil*_*yon 5

WITH在删除节点和关系之前,可以使用子句为要返回的数据设置别名.像这样的东西:

MATCH (n:Topic {mongoId: {_id} })-[r]-() 
WITH r.mongoId as docId, n,r 
DELETE n,r 
RETURN docId
Run Code Online (Sandbox Code Playgroud)

或者您可以将其分解为两个查询,一个用于检索所需的属性,另一个用于删除关系和节点.

编辑:您最有可能想要指定一个定向关系,以避免docId返回重复的属性:

MATCH (n:Topic {mongoId: {_id} })-[r]->()
...
Run Code Online (Sandbox Code Playgroud)