你如何使用neo4j的参数?

Wil*_*ill 6 neo4j

我正在查看neo4j的文档,我发现在创建对象时我可以使用参数.特别是当我看到这个页面时,我看到了代码:

{
  "props" : {
    "position" : "Developer",
    "name" : "Andres"
  }
}
Run Code Online (Sandbox Code Playgroud)

查询.

CREATE ({ props })
Run Code Online (Sandbox Code Playgroud)

然而,当我使用Web界面访问我的本地机器上的neo4j数据库时,我不知道如何指定参数.只需复制/粘贴JSON对象就会产生错误.我在页面上看到了

究竟如何提交它们取决于使用的驱动程序.

但是如何在命令行/ web界面上使用它们?

Ken*_*ani 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)
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)

  • 你可以在浏览器和shell中使用HTTP方法发送带有params的cypher,在浏览器中发送`:POST`和在shell中发送`POST`.在shell中,您还可以导出参数,然后直接在查询中使用它们,即`export name ="Bill"`和`MATCH(n {name:{name}})RETURN n;`. (3认同)