什么是SyntaxError,"未知程序输出:`node`"意思?

时间:2017-05-29 21:55:42

标签: neo4j cypher neo4j-spatial

我遵循多个教程并且都展示了相同的Cypher查询,因此它必须是正确的,但我收到了以下错误:

  

Neo.ClientError.Statement.SyntaxError未知程序输出:node

代码:

call spatial.addWKTLayer('geom', 'wkt')
------- THEN --------
MATCH (v:Venue) WITH collect(v) as venues
CALL spatial.addNodes('geom', venues) 
YIELD node
RETURN count(*)

2 个答案:

答案 0 :(得分:5)

取自Github问题(正确答案):

查看代码我注意到addNodes过程在去年11月更改了签名,以返回添加的节点数,而不是添加的节点流。我相信,这支持使用批量加载功能更快地添加节点,因此也支持更多的节点。由于您传入节点,因此返回节点也没有实际价值。

现在应该做些什么:

call spatial.addWKTLayer('geom', 'wkt')
------- THEN --------
MATCH (v:Venue) WITH collect(v) as venues
CALL spatial.addNodes('geom', venues) 
YIELD count
RETURN count

如果您真的想要产生节点,请一次添加一个:

call spatial.addWKTLayer('geom', 'wkt')
------- THEN --------
MATCH (v:Venue)
CALL spatial.addNode('geom', v) 
YIELD node
RETURN count(*)

Github问题==> Link to Issue

答案 1 :(得分:2)

通常这意味着您正在从过程调用中输出错误的变量。尝试检查您要调用的过程的签名,以获取变量:

call dbms.procedures() yield name, signature
where name contains 'spatial.addNodes'
return name, signature