Я хочу найти путь (в данном случае всю базу данных), где есть узел :B
, у которого нет входящего :s
-edge, а затем удалить все пути :B
.Cypher: удалить узлы из пути
Это моя тестовая база данных:
MERGE (B1:B {name:"B1"})-[:t]->(B2:B {name:"B2"})-[:t]->(B3:B {name:"B3"})-[:t]->(B4:B {name:"B4"})-[:t]->(B5:B {name:"B5"})-[:t]->(C1:D {name:"D1"})
MERGE (A1:A {name:"A1"})-[:s]->(B1)
MERGE (A2:A {name:"A2"})-[:s]->(B2)
MERGE (A3:A {name:"A3"})-[:s]->(B4)
MERGE (A5:A {name:"A5"})-[:s]->(B5)
5)
Запрос я попытался в последний раз это, но он выдает ошибку:
MATCH p=(n:A)-[*] ->(o:B)-[:t*]->(m:D)
WITH NODES(p)[1..-1] AS Pspace_nodes, o, p
MATCH o WHERE NOT()-[:s]->(o)
FOREACH (n IN Pspace_nodes| MATCH n-[*]-() DELETE n , r)
Ошибка сообщение:
py2neo.cypher.error.statement.InvalidSyntax: Invalid use of MATCH inside FOREACH (line 4, column 29 (offset: 143))
"FOREACH (n IN Pspace_nodes| MATCH n-[*]-() DELETE n , r)
Как я могу выразить это в действующем порядке?
Ваше сообщение об ошибке и ваш запрос показывают разные предложения FOREACH. – cybersam
спасибо, исправил. –