openCypher 参数化查询示例 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

openCypher 参数化查询示例

Neptune 支持参数化的 openCypher 查询。这样,您就可以通过不同的参数多次使用相同的查询结构。由于查询结构不会变化,Neptune 可以缓存其抽象语法树 (AST),而不必多次解析它。

使用 HTTPS 端点进行的 openCypher 参数化查询示例

以下是在 Neptune openCypher HTTPS 端点上使用参数化查询的示例。查询为:

MATCH (n {name: $name, age: $age}) RETURN n

参数定义如下:

parameters={"name": "john", "age": 20}

使用 GET,您可以按如下所示提交参数化查询:

curl -k \ "https://localhost:8182/openCypher?query=MATCH%20%28n%20%7Bname:\$name,age:\$age%7D%29%20RETURN%20n&parameters=%7B%22name%22:%22john%22,%22age%22:20%7D"

或者,您也可以使用 POST

curl -k \ https://localhost:8182/openCypher \ -d "query=MATCH (n {name: \$name, age: \$age}) RETURN n" \ -d "parameters={\"name\": \"john\", \"age\": 20}"

或者,使用 DIRECT POST

curl -k \ -H "Content-Type: application/opencypher" \ "https://localhost:8182/openCypher?parameters=%7B%22name%22:%22john%22,%22age%22:20%7D" \ -d "MATCH (n {name: \$name, age: \$age}) RETURN n"

使用 Bolt 进行 openCypher 参数化查询的示例

以下是使用 Bolt 协议进行 openCypher 参数化查询的 Python 示例:

from neo4j import GraphDatabase uri = "bolt://[neptune-endpoint-url]:8182" driver = GraphDatabase.driver(uri, auth=("", "")) def match_name_and_age(tx, name, age): # Parameterized Query tx.run("MATCH (n {name: $name, age: $age}) RETURN n", name=name, age=age) with driver.session() as session: # Parameters session.read_transaction(match_name_and_age, "john", 20) driver.close()

以下是使用 Bolt 协议进行 openCypher 参数化查询的 Java 示例:

Driver driver = GraphDatabase.driver("bolt+s://(your cluster endpoint URL):8182"); HashMap<String, Object> parameters = new HashMap<>(); parameters.put("name", "john"); parameters.put("age", 20); String queryString = "MATCH (n {name: $name, age: $age}) RETURN n"; Result result = driver.session().run(queryString, parameters);