Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在neo4j中使用cypher创建多个节点_Neo4j_Graph Databases - Fatal编程技术网

如何在neo4j中使用cypher创建多个节点

如何在neo4j中使用cypher创建多个节点,neo4j,graph-databases,Neo4j,Graph Databases,我想使用单个密码查询创建多个断开连接的节点 文件说: 使用属性参数创建多个节点。通过向Cypher提供一组映射,它将为每个映射创建一个节点 在neo4j rest web控制台中,我尝试了(在许多其他事情中) 但是收到这个错误 无效输入“[”:应为空白、注释、节点标签、MapLiteral、参数“)”或关系模式(第1行第11列) 创建(n[{a:1,b:2},{a:1,b:2}])返回n 有可能做我正在尝试的事情吗?如果有,如何做?它必须是http api或java api的一个参数 CREAT

我想使用单个密码查询创建多个断开连接的节点

文件说:

使用属性参数创建多个节点。通过向Cypher提供一组映射,它将为每个映射创建一个节点

在neo4j rest web控制台中,我尝试了(在许多其他事情中)

但是收到这个错误

无效输入“[”:应为空白、注释、节点标签、MapLiteral、参数“)”或关系模式(第1行第11列) 创建(n[{a:1,b:2},{a:1,b:2}])返回n


有可能做我正在尝试的事情吗?如果有,如何做?

它必须是http api或java api的一个参数

CREATE (n { props })
RETURN n

{props:[{a:1,b:2}, {a:1,b:2}]}
或者您可以使用
foreach
,甚至可以使用文字数组

FOREACH (props IN [{ a:1,b:2 }, { a:1,b:2 }]| 
         CREATE ({ a:props.a,b:props.b }))

我尝试了Michael Hunger的答案,但没有成功。可能是旧版本?我使用的是3.1.3

这是对我有用的

UNWIND {props} AS map
CREATE (n)
SET n = map
其中需要将{props}作为参数传递给JavaAPI

下面是Groovy中的一个快速示例:

List<Map<String, String>> props = list.collect{ C c -> ["name": c.name] }
neo4jOperations.query("unwind {props} as map create (c) set c = map", ["props": props])
List-props=List.collect{cc->[“name”:C.name]}
neo4joOperations.query(“将{props}作为映射创建(c)set c=map展开,[“props”:props])

首先,免责声明:我不是Neo4j专家,只是一个没有经验的图形爱好者。我使用的是Neo4j浏览器版本:4.0.1+Neo4j服务器版本:3.5.12(企业版)

在从互联网上尝试了一百万个菜谱失败后,我终于意识到,除非你在Neo4j桌面查询编辑器上独立输入菜谱,否则这些菜谱都不会起作用

或者,如果要将所有语句保留在同一查询窗口中,可以在每个cypher语句后键入分号(“;”)。在这种情况下,需要允许多语句,在Neo4j浏览器设置>启用多语句查询编辑器上勾选

所以,为了让像我这样的新手明白易懂,这里我们有一个工作示例

最初,在查询编辑器中,键入:

:param props => [{name: 'John', age: 18}, {name: 'Phill', age: 23}]
这将在对象道具下的系统中将上述参数保存为:

{
"props": [
{
  "name": "John",
  "age": 18
},
{
  "name": "Phill",
  "age": 23
}
]
}
然后,在全新的查询编辑器窗口中,键入:

FOREACH (props IN $props | CREATE (a {name:props.name, age:props.age}))
希望您能得到以下信息:

Created 2 nodes, set 2 properties, completed after 7 ms.
然后,为了从系统中清除这些参数,以便它们不会干扰任何其他参数,请键入:

:params {}
Created 2 nodes, set 2 properties, completed after 7 ms.
:params {}