

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
<a name="opencypher-parameterized-queries"></a>

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
<a name="opencypher-http-parameterized-queries"></a>

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-query](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/execute-open-cypher-query.html)in 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 unter[AWS SDK](access-graph-opencypher-sdk.md).

------
#### [ 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
<a name="opencypher-bolt-parameterized-queries"></a>

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