Neo4j Apoc Периодический предел фиксации не работает - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь удалить все узлы, степень которых равна или меньше 1, но это не работает. Мой запрос выглядит следующим образом

CALL apoc.periodic.commit(" 
MATCH (n:RoadPoint)-[:ROAD_SEGMENT]-(m:RoadPoint) 
WHERE NOT (:Depot)-[:LOCATED_AT]->(n) 
WITH n , COUNT(DISTINCT m) AS c 
WHERE c <= 1 
WITH n limit {limit}
DETACH DELETE n 
RETURN COUNT(*)
", {limit:1000})

1 Ответ

1 голос
/ 08 июля 2019

Вы можете попробовать этот запрос:

CALL apoc.periodic.commit(
  "MATCH (n:RoadPoint)
   WHERE 
    NOT (:Depot)-[:LOCATED_AT]->(n) AND
    size((n)-[:ROAD_SEGMENT]-(:RoadPoint)) <=1
   WITH n LIMIT $limit
   DETACH DELETE n 
   RETURN COUNT(*)", 
  {limit:1000}
)

Он должен работать, а также быть намного быстрее, благодаря функции size, которая в этом случае использует статистику градуса, которая хранится на каждом узле..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...