Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beispiele für openCypher parametrisierte Abfragen
Neptune unterstützt parametrisierte openCypher Abfragen. So können Sie dieselbe Abfragestruktur mehrmals mit unterschiedlichen Argumenten verwenden. Da sich die Abfragestruktur nicht ändert, kann Neptune seinen abstrakten Syntaxbaum (AST) zwischenspeichern, anstatt ihn mehrmals analysieren zu müssen.
Beispiel für eine openCypher parametrisierte Abfrage unter Verwendung des Endpunkts HTTPS
Im Folgenden finden Sie ein Beispiel für die Verwendung einer parametrisierten Abfrage mit dem openCypher HTTPS Neptun-Endpunkt. Die Abfrage ist:
MATCH (n {name: $name, age: $age}) RETURN n
Die Parameter sind wie folgt definiert:
parameters={"name": "john", "age": 20}
Sie können mittels GET
die parametrisierte Abfrage wie folgt einreichen:
curl -k \ "https://localhost:8182/openCypher?query=MATCH%20%28n%20%7Bname:\$name,age:\$age%7D%29%20RETURN%20n¶meters=%7B%22name%22:%22john%22,%22age%22:20%7D"
Sie können jedoch auch POST
verwenden.
curl -k \ https://localhost:8182/openCypher \ -d "query=MATCH (n {name: \$name, age: \$age}) RETURN n" \ -d "parameters={\"name\": \"john\", \"age\": 20}"
Oder bei Verwendung von 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"
Beispiele für parametrisierte Abfragen mit Bolt openCypher
Hier ist ein Python-Beispiel für eine openCypher parametrisierte Abfrage mit dem Bolt-Protokoll:
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()
Hier ist ein Java-Beispiel für eine openCypher parametrisierte Abfrage, die das Bolt-Protokoll verwendet:
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);