我正在查看neo4j的文档,我发现在创建对象时我可以使用参数。特别是当我看到这个page时,我看到了代码:
{
"props" : {
"position" : "Developer",
"name" : "Andres"
}
}
查询。
CREATE ({ props })
然而,当我使用Web界面访问本地计算机上的neo4j数据库时,我不知道如何指定参数。只需复制/粘贴JSON对象就会产生错误。我在页面上看到了
究竟如何提交它们取决于使用的驱动程序。
但是如何在命令行/ web界面上使用它们?
答案 0 :(得分:7)
Cypher支持使用以JSON格式提交的参数进行查询。例如,以下是REST API用法。有关Java嵌入式API,请参阅以下文档:http://docs.neo4j.org/chunked/milestone/tutorials-cypher-parameters-java.html
MATCH (x { name: { startName }})-[r]-(friend)
WHERE friend.name = { name }
RETURN TYPE(r)
示例请求
POST http://localhost:7474/db/data/cypher
Accept: application/json; charset=UTF-8
Content-Type: application/json
{
"query" : "MATCH (x {name: {startName}})-[r]-(friend) WHERE friend.name = {name} RETURN TYPE(r)",
"params" : {
"startName" : "I",
"name" : "you"
}
}
回复示例
200: OK
Content-Type: application/json; charset=UTF-8
{
"columns" : [ "TYPE(r)" ],
"data" : [ [ "know" ] ]
}
Neo4j 2.0浏览器中的常规Cypher语句目前不支持参数。但是,您可以使用:POST语法来实现此目的。
有关通过REST API进行的Cypher查询的更多信息,请参阅文档。
http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html
更新
以下查询允许您在浏览器中完成此操作,尽管这不是一种理想的体验:
:POST /db/data/transaction/commit {
"statements": [
{
"statement": "MATCH (u:User {name:{username}}) RETURN u.name as username",
"parameters": {
"username": "my name"
}
}
]
}
答案 1 :(得分:0)
在浏览器的命令行中定义参数的语法为:params
,后跟您要定义的变量,只需键入:params
,您就会从命令行中了解此命令的工作方式结果提示。
对于HTTP API,在最新版本(撰写本文时为v3.5)中,请使用从https://neo4j.com/docs/http-api/current/http-api-actions/execute-multiple-statements/复制的以下语法:
{
"statements" : [ {
"statement" : "CREATE (n) RETURN id(n)"
}, {
"statement" : "CREATE (n {props}) RETURN n",
"parameters" : {
"props" : {
"name" : "My Node"
}
}
} ]
}