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

时间:2015-06-29 20:01:11

标签: neo4j cypher

$ join -a 1 -a 2 <(sort -b /tmp/file1) <(sort -b /tmp/file2) | while read a b c; do echo $a $((${b:-0} + ${c:-0})); done 68150 553 68171 6 68220 300 68448 218 68778 505 68993 13

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

但是,我需要MATCH (n:Topic { mongoId: {_id} })-[r]-() DELETE n,r RETURN r;删除另一个数据库中的条目。

如何使用Neo4j 2.2.3执行此操作?

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

我只需要这些数据:r.mongoId

谢谢!

1 个答案:

答案 0 :(得分:5)

在删除节点和关系之前,您可以使用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]->()
...