1

我正在尝试删除度数等于或小于 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})
4

1 回答 1

1

你可以试试这个查询:

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功能,在这种情况下使用存储在每个节点上的度数统计信息。

于 2019-07-08T13:18:34.250 回答