如何知道apoc过程的输出名称

mir*_*chi 5 stored-procedures neo4j cypher

我正在使用一些很棒的apoc.refactor程序.我注意到在文档中没有提到可以使用的输出变量名称YIELDS.

我想出了refactor.mergeNodes输出node(作为新的合并节点),但我无法弄清楚refactor.toor 的输出名称是什么refactor.from.我试图relnewRel没有成功.我不是一个java程序员,但检查代码(特别是RelationshipRefactorResult.java)我认为'rel'是最好的.

这是我正在尝试的查询:

MATCH ()-[r]->(), (n)
WHERE id(r) = 16 AND id(n) = 4
CALL apoc.refactor.from(r,n) YIELD rel
RETURN rel
Run Code Online (Sandbox Code Playgroud)

这是输出消息:

Unknown procedure output: `rel` (line 3, column 36 (offset: 96))
"RETURN rel"
Run Code Online (Sandbox Code Playgroud)

Mic*_*ger 8

对不起,这是当前文档的缺点.

我们希望自动化/改进它.

如果您可以看到输出类型 CALL dbms.procedures()

CALL dbms.procedures() YIELD name, signature
WITH * WHERE name STARTS WITH 'apoc.refactor'
RETURN name, signature
Run Code Online (Sandbox Code Playgroud)

签名总是name :: TYPE 例如在您的情况下:

apoc.refactor.to(relationship :: RELATIONSHIP?, newNode :: NODE?) :: (input :: INTEGER?, output :: RELATIONSHIP?, error :: STRING?)

参数:

  • 名称:relationship,类型:关系
  • 名称:newNode,类型:节点

输出列:

  • 名称:input,类型:整数
  • 名称:output,类型关系
  • 名称:error,类型:字符串