View a markdown version of this page

Exemples de requêtes paramétrées openCypher - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples de requêtes paramétrées openCypher

Neptune prend en charge les requêtes openCypher paramétrées. Vous pouvez ainsi utiliser la même structure de requête plusieurs fois avec des arguments différents. Comme la structure de la requête ne change pas, Neptune peut mettre en cache son arbre syntaxique abstrait (AST) au lieu d'avoir à l'analyser plusieurs fois.

Exemple de requête paramétrée openCypher avec le point de terminaison HTTPS

Vous trouverez ci-dessous un exemple d'utilisation d'une requête paramétrée avec le point de terminaison HTTPS Neptune openCypher. Voici cette requête :

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

Les paramètres sont définis, comme suit :

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

Vous pouvez soumettre la requête paramétrée comme suit :

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}'

Pour plus d'informations, consultez execute-open-cypher-queryle manuel de référence des AWS CLI commandes.

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'])

Pour des exemples de AWS SDK dans d'autres langues, voirAWS 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}'
Note

Cet exemple suppose que vos AWS informations d'identification sont configurées dans votre environnement. Remplacez us-east-1 par la région de votre cluster Neptune.

curl

En utilisant POST :

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

En utilisant GET (encodé en URL) :

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"

En utilisant 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"

Exemples de requêtes paramétrées openCypher avec Bolt

Voici un exemple Python d'une requête paramétrée openCypher avec le protocole Bolt :

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

Voici un exemple Java d'une requête paramétrée openCypher avec le protocole Bolt :

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