openCypher 參數化查詢的範例 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

openCypher 參數化查詢的範例

Neptune 支持參數化 openCypher 查詢。這可讓您搭配不同引數使用相同的查詢結構多次。由於查詢結構不會改變,Neptune 可以緩存其抽象語法樹(AST),而不必多次解析它。

使用端點的 openCypher 參數化查詢範例 HTTPS

以下是使用參數化查詢搭配 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);