我有点卡住了。我试图在我的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
}
]
}]
}
我尝试过使用STATEMENT打开一笔交易并提供单独的行'在I / COMMIT之前的后续交易中作为参数,但没有快乐。
我知道multiple nodes can be created与手册中的示例类似。
我错过了什么?
答案 0 :(得分:2)
我已经修改了this post的答案,这似乎可以通过使用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) "
}
]
}
答案 1 :(得分:0)
您也可以在这种情况下使用UNWIND:
声明:
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加载本地数据库中生成的图形的内容。 http://graphgen.neoxygen.io