我正在尝试使用APOC构建一个在请求查询后触发的触发器(阶段:“之后”)。我正在尝试按照第一个示例here中提供的确切步骤进行操作。但是,查询永远不会完成。
我正在使用neo4j 3.5.4的全新构建,并且仅安装了APOC作为插件,除了添加apoc.trigger.enabled=true
之外,我没有更改任何配置。
更准确地说,我在localhost:7474
的浏览器中执行以下步骤:
创建数据
CREATE (d:Person {name:'Daniel'})
CREATE (l:Person {name:'Mary'})
CREATE (t:Person {name:'Tom'})
CREATE (j:Person {name:'John'})
CREATE (m:Person {name:'Michael'})
CREATE (a:Person {name:'Anne'})
CREATE (l)-[:DAUGHTER_OF]->(d)
CREATE (t)-[:SON_OF]->(d)
CREATE (t)-[:BROTHER]->(j)
CREATE (a)-[:WIFE_OF]->(d)
CREATE (d)-[:SON_OF]->(m)
CREATE (j)-[:SON_OF]->(d)
创建触发器
CALL apoc.trigger.add('setAllConnectedNodes','UNWIND apoc.trigger.propertiesByKey({assignedNodeProperties},"surname") as prop
WITH prop.node as n
MATCH(n)-[]-(a)
SET a.surname = n.surname', {phase:'after'});
执行应触发上述触发器的查询
MATCH (d:Person {name:'Daniel'})
SET d.surname = 'William'
这最后一步将导致查询永远不会完成,这给了我一个永远不会离开的微调框。唯一的停止方法是终止查询。
这是怎么回事?