Я пытаюсь удалить все узлы со степенью, равной или меньшей 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})
apoc.periodic.commit()
будет выполнять этот точный запрос снова и снова для каждого пакета, что означает, что он будет перепроверять одни и те же узлы снова и снова (те, которые не соответствуют вашим критериям) с каждым пакетом. Вместо этого вам действительно следует использоватьapoc.periodic.iterate()
. Идеальное использование дляapoc.periodic.commit()
— это когда вам не нужно фильтровать, а ваши совпадения удаляются или изменяются, чтобы они не сопоставлялись повторно в последующих пакетах (например, при удалении узлов метки или удалении метки с помеченных узлов). - person InverseFalcon   schedule 08.07.2019