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 parametrizzata 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 https://docs.aws.amazon.com/cli/latest/reference/neptunedata/execute-open-cypher-query.html execute-open-cypher-query nel Command Reference. AWS CLI
- 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 di AWS SDK in altre lingue, consulta. AWS 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}'
Questo esempio presuppone che le tue AWS credenziali siano configurate nel tuo 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 ()URL-encoded:
curl -X GET \
"https://your-neptune-endpoint:port/openCypher?query=MATCH%20%28n%20%7Bname:\$name,age:\$age%7D%29%20RETURN%20n¶meters=%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);