在neo4j中从列表(UNWIND)创建节点

时间:2019-05-12 19:28:57

标签: neo4j cypher graph-databases

展开一个json文件后,我得到一个字符串列表作为输出,需要将其创建为节点。

查询返回的URL(字符串)列表:-

WITH {json} AS document
UNWIND document.log.entries AS API
UNWIND API.request.url as a
RETURN a

尝试使用FOREACH创建具有以上查询列表的节点,但会出现异常。

FOREACH (n IN nodes(a) | CREATE (n))

但出现异常。 在查询方面需要帮助。

1 个答案:

答案 0 :(得分:0)

如果a的值是URL字符串,则:

  • NODES(a)不起作用,因为NODES()的参数必须为path
  • 此外,甚至不需要FOREACH,因为a是标量值(字符串),而不是列表。

以下是创建包含URL字符串的节点的示例:

WITH $json AS document
UNWIND document.log.entries AS API
UNWIND API.request.url as a
CREATE (f:Foo {url: a});

上面的查询还使用$json而不是不推荐使用的{json}语法。

或者,如果您删除了最后一个UNWIND子句,则可以使用以下方法来使用FOREACH

WITH $json AS document
UNWIND document.log.entries AS API
FOREACH(a IN API.request.url | CREATE (f:Foo {url: a}));