View a markdown version of this page

Esempi di query openCypher parametrizzate - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempi di query openCypher parametrizzate

Neptune supporta query openCypher parametrizzate. Ciò consente di utilizzare la stessa struttura di query più volte con argomenti diversi. Poiché la struttura della query non cambia, Neptune può memorizzare nella cache l'albero sintattico astratto (AST) invece di doverlo analizzare più volte.

Esempio di una query openCypher parametrizzata con l'endpoint HTTPS

Di seguito è riportato un esempio di utilizzo di una query parametrizzata con l'endpoint HTTPS openCypher di Neptune. La query è:

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

I parametri sono definiti come segue:

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

Puoi inviare la query con parametri in questo modo:

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

Per ulteriori informazioni, vedere execute-open-cypher-querynel AWS CLI Command Reference.

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

Per esempi AWS SDK in altre lingue, consultaAWS 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}'
Nota

Questo esempio presuppone che le AWS credenziali siano configurate nel proprio ambiente. Sostituisci us-east-1 con la regione del tuo cluster Neptune.

curl

Con POST:

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

Usando GET (con codifica 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"

Con 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"

Esempi di query openCypher parametrizzate con Bolt

Ecco un esempio Python di una query openCypher parametrizzata che utilizza il protocollo 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()

Ecco un esempio Java di una query openCypher parametrizzata che utilizza il protocollo 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);