我正在查看neo4j的文档,我发现在创建对象时我可以使用参数.特别是当我看到这个页面时,我看到了代码:
{
"props" : {
"position" : "Developer",
"name" : "Andres"
}
}
Run Code Online (Sandbox Code Playgroud)
查询.
CREATE ({ props })
Run Code Online (Sandbox Code Playgroud)
然而,当我使用Web界面访问我的本地机器上的neo4j数据库时,我不知道如何指定参数.只需复制/粘贴JSON对象就会产生错误.我在页面上看到了
究竟如何提交它们取决于使用的驱动程序.
但是如何在命令行/ web界面上使用它们?
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)
Run Code Online (Sandbox Code Playgroud)
示例请求
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"
}
}
Run Code Online (Sandbox Code Playgroud)
响应示例
200: OK
Content-Type: application/json; charset=UTF-8
{
"columns" : [ "TYPE(r)" ],
"data" : [ [ "know" ] ]
}
Run Code Online (Sandbox Code Playgroud)
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"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)