View a markdown version of this page

Beispiele für parametrisierte openCypher-Abfragen - Amazon Neptune

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 parametrisierte openCypher-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 den abstrakten Syntaxbaum (AST) zwischenspeichern, statt ihn mehrmals analysieren zu müssen.

Beispiel für eine parametrisierte openCypher-Abfrage, die den HTTPS-Endpunkt verwendet

Beispiel für die Verwendung einer parametrisierten Abfrage über den Neptune-openCypher-HTTPS-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 die parametrisierte Abfrage wie folgt einreichen:

AWS CLI
aws neptunedata execute-open-cypher-query \ --endpoint-url https://your-neptune-endpoint:port \ --open-cypher-query "MATCH (n {name: \$name, age: \$age}) RETURN n" \ --parameters '{"name": "john", "age": 20}'

Weitere Informationen finden Sie execute-open-cypher-queryin der AWS CLI Befehlsreferenz.

SDK
import boto3 from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.execute_open_cypher_query( openCypherQuery='MATCH (n {name: $name, age: $age}) RETURN n', parameters='{"name": "john", "age": 20}' ) print(response['results'])

AWS SDK-Beispiele in anderen Sprachen finden Sie unterAWS SDK.

awscurl
awscurl https://your-neptune-endpoint:port/openCypher \ --region us-east-1 \ --service neptune-db \ -X POST \ -d "query=MATCH (n {name: \$name, age: \$age}) RETURN n" \ -d 'parameters={"name": "john", "age": 20}'
Anmerkung

In diesem Beispiel wird davon ausgegangen, dass Ihre AWS Anmeldeinformationen in Ihrer Umgebung konfiguriert sind. Ersetze es us-east-1 durch die Region deines Neptun-Clusters.

curl

Verwenden von POST:

curl https://your-neptune-endpoint:port/openCypher \ -d "query=MATCH (n {name: \$name, age: \$age}) RETURN n" \ -d "parameters={\"name\": \"john\", \"age\": 20}"

Verwenden von GET (URL-kodiert):

curl -X GET \ "https://your-neptune-endpoint:port/openCypher?query=MATCH%20%28n%20%7Bname:\$name,age:\$age%7D%29%20RETURN%20n&parameters=%7B%22name%22:%22john%22,%22age%22:20%7D"

Verwenden von DIRECT POST:

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

Beispiele für parametrisierte openCypher-Abfragen über Bolt

Dies ist ein Python-Beispiel für eine parametrisierte openCypher-Abfrage über das 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()

Dies ist ein Java-Beispiel für eine parametrisierte openCypher-Abfrage über das Bolt-Protokoll:

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);