假设我们有这个查询:
match (n:Intersection) WHERE NOT (n)<-[:RTREE_REFERENCE]-() RETURN n
Run Code Online (Sandbox Code Playgroud)
它返回节点,但我们如何将其作为返回的所有节点的LIST返回?即[节点1,节点2,节点3]。我正在使用的过程需要一个输入参数,该参数需要采用集合/列表格式
match (n:Intersection) WHERE NOT (n)<-[:RTREE_REFERENCE]-() with n CALL spatial.addNodes("network",n) yield node return node
Type mismatch: expected Collection<Node> but was Node
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您将查询更改为:
MATCH (n:Intersection)
WHERE NOT (n)<-[:RTREE_REFERENCE]-()
RETURN COLLECT(n)
Run Code Online (Sandbox Code Playgroud)
然后它将返回节点列表。
所以第二个查询将如下所示:
MATCH (n:Intersection)
WHERE NOT (n)<-[:RTREE_REFERENCE]-()
WITH COLLECT(n) AS nodesList
CALL spatial.addNodes("network", nodesList) YIELD node
RETURN node
Run Code Online (Sandbox Code Playgroud)
请参阅https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-collect