View a markdown version of this page

openCypher のパラメーター化されたクエリの例 - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

openCypher のパラメーター化されたクエリの例

Neptune はパラメーター化された openCypher クエリをサポートしています。これにより、同じクエリ構造を異なる引数で複数回使用できます。クエリ構造は変更されないため、Neptune は抽象構文ツリー (AST) を何度も解析しなくてもキャッシュできます。

HTTPS エンドポイントを使用する openCypher パラメーター化されたクエリの例

以下は、Neptune openCypher HTTPS エンドポイントでパラメーター化されたクエリを使用する例です。クエリ は、次のとおりです。

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

パラメータの定義は次のとおりです。

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

パラメータ化されたクエリは、次のように送信できます。

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

詳細については、 コマンドリファレンスの execute-open-cypher-query 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'])

他の言語の AWS SDK の例については、「」を参照してください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}'
注記

この例では、 AWS 認証情報が 環境で設定されていることを前提としています。us-east-1 を Neptune クラスターのリージョンに置き換えます。

curl

POST を使用する:

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

の使用 GET (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"

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"

Bolt を使った openCypher のパラメーター化されたクエリの例

以下は、Bolt プロトコルを使用した openCypher パラメーター化されたクエリの Python の例です。

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

以下は、Bolt プロトコルを使用する openCypher パラメーター化されたクエリの Java の例です。

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