Neo4j 如何在事务性密码HTTP中正确使用参数

Neo4j 如何在事务性密码HTTP中正确使用参数,neo4j,Neo4j,我有点卡住了。我试图在http请求中使用参数以减少开销,但我不明白为什么这样做行不通: { "statements" : [ { "statement" : "MATCH (n:Person) WHERE n.name = {name} SET n.dogs={dogs} RETURN n", "parameters" : [{ "name" : "Andres", "dogs":5 },{ "name" : "Michael", "dogs":3 },{ "name" : "Som

我有点卡住了。我试图在http请求中使用参数以减少开销,但我不明白为什么这样做行不通:

{
"statements" : [ {
"statement" : "MATCH (n:Person) WHERE n.name = {name}  SET n.dogs={dogs}   RETURN n",
"parameters" : [{

"name" : "Andres",
"dogs":5
},{

"name" : "Michael",
"dogs":3
},{

"name" : "Someone",
"dogs":2
}
]

}]
}
我尝试过在I/COMMIT之前用一条语句打开一个事务,并将单独的“行”作为后续事务的参数输入,但没有成功

我从手册中的示例中了解到这一点


我遗漏了什么?

后来我修改了来自的答案,它似乎通过使用FOREACH语句来允许多个参数的“集合”来工作

{
  "statements" : [ 

  {
"parameters": {
    "props": [
        {
            "userid": "177032492760",
            "username": "John"
        },
        {
            "userid": "177032492760",
            "username": "Mike"
        },
        {
            "userid": "100007496328",
            "username": "Wilber"
        }
    ]
},
"statement": "FOREACH (p in {props} | MERGE (user:People {id:p.userid}) ON CREATE SET user.name = p.username) "
}
]
}

在这种情况下,您也可以使用“展开”:

声明:

UNWIND props as prop
MERGE (user:People {id: {prop}.id}) // and the rest of your query
{"props":[ {"id": 1234, "name": "John"},{"id": 4567, "name": "Chris"}]}
参数:

UNWIND props as prop
MERGE (user:People {id: {prop}.id}) // and the rest of your query
{"props":[ {"id": 1234, "name": "John"},{"id": 4567, "name": "Chris"}]}

这是Graphgen上用于从webapp将生成的图形加载到本地数据库中的内容

参数是键值的映射,其中的值可以是标量,也可以是列表或映射列表。非常感谢。