Neo4j-set-clause
Neo4j-セット句
Set句を使用すると、既存のノードまたは関係に新しいプロパティを追加したり、既存のプロパティ値を追加または更新したりできます。
この章では、次の方法について説明します-
- プロパティを設定する
- プロパティを削除する
- 複数のプロパティを設定する
- ノードにラベルを設定する
- ノードに複数のラベルを設定する
プロパティを設定する
SET句を使用して、ノードに新しいプロパティを作成できます。
構文
以下は、プロパティを設定するための構文です。
MATCH (node:label{properties . . . . . . . . . . . . . . })
SET node.property = value
RETURN node
例
例に進む前に、以下に示すように、まずDhawanという名前のノードを作成します。
CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"})
以下は、“ highestscore” _という名前で値“ 187” _のプロパティを作成するサンプルサイファークエリです。
MATCH (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"})
SET Dhawan.highestscore = 187
RETURN Dhawan
上記のクエリを実行するには、次の手順を実行します-
ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のscrenshotに示すように、URL *http://localhost:7474/ を使用してNeo4jの組み込みブラウザーアプリを開きます。
- ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。
結果
実行すると、次の結果が得られます。 ここでは、キーと値のペアがhighestscore/187のプロパティが「Dhawan」という名前のノードに作成されていることがわかります。
プロパティの削除
*NULL* を値として渡すことにより、既存のプロパティを削除できます。
構文
以下は、SET句を使用してノードからプロパティを削除する構文です。
MATCH (node:label {properties})
SET node.property = NULL
RETURN node
例
例に進む前に、次のようにノード「jadeja」を作成します。
Create (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
以下は、以下に示すようにSET句を使用してこのノードからPOBという名前のプロパティを削除するサンプルサイファークエリです。
MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
SET Jadeja.POB = NULL
RETURN Jadeja
上記のクエリを実行するには、次の手順を実行します-
ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のスクリーンショットに示すように、URL *http://localhost:7474/ を使用して、Neo4jの組み込みブラウザーアプリを開きます。
- ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。
結果
実行すると、次の結果が得られます。 ここで、 POB という名前の変数が削除されたことを確認できます。
複数のプロパティを設定する
同様に、Set句を使用してノードに複数のプロパティを作成できます。 そのためには、これらのキーと値のペアをコンマで指定する必要があります。
構文
以下は、SET句を使用してノードに複数のプロパティを作成する構文です。
MATCH (node:label {properties})
SET node.property1 = value, node.property2 = value
RETURN node
例
次に、Neo4jのSET句を使用してノードに複数のプロパティを作成するサンプルサイファークエリを示します。
MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988})
SET Jadeja.POB: "NavagamGhed", Jadeja.HS = "90"
RETURN Jadeja
上記のクエリを実行するには、次の手順を実行します-
ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のスクリーンショットに示すように、URL *http://localhost:7474/ を使用して、Neo4jの組み込みブラウザーアプリを開きます。
- ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。
結果
実行すると、次の結果が得られます。 ここで、POBおよびHSという名前のプロパティが作成されたことを確認できます。
ノードにラベルを設定する
SET句を使用して、既存のノードにラベルを設定できます。
構文
以下は、既存のノードにラベルを設定する構文です。
MATCH (n {properties . . . . . . . })
SET n :label
RETURN n
例
例に進む前に、以下に示すように、最初にノード「アンダーソン」を作成します。
CREATE (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"})
次に、SET句を使用してノードにラベルを設定するサンプルサイファークエリを示します。 このクエリは、ラベル「player」をノードAndersonに追加して返します。
MATCH (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"})
SET Anderson: player
RETURN Anderson
上記のクエリを実行するには、次の手順を実行します-
ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のスクリーンショットに示すように、URL *http://localhost:7474/ を使用して、Neo4jの組み込みブラウザーアプリを開きます。
- ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。
結果
実行すると、次の結果が得られます。 ここで、「player」というラベルがノードに追加されていることがわかります。
ノードに複数のラベルを設定する
SET句を使用して、既存のノードに複数のラベルを設定できます。 ここでは、ラベルをコロン「:」で区切って指定する必要があります。
構文
以下は、SET句を使用して既存のノードに複数のラベルを設定する構文です。
MATCH (n {properties . . . . . . . })
SET n :label1:label2
RETURN n
例
例に進む前に、以下に示すように、まず「Ishant」という名前のノードを作成します。
CREATE (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})
以下は、SET句を使用してノードに複数のラベルを作成するために使用されるサンプルサイファークエリです。
MATCH (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})
SET Ishant: player:person
RETURN Ishant
上記のクエリを実行するには、次の手順を実行します-
ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のスクリーンショットに示すように、URL *http://localhost:7474/ を使用して、Neo4jの組み込みブラウザーアプリを開きます。
- ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。
結果
実行すると、次の結果が得られます。 ここでは、 Ishant という名前のノードに2つのラベル(personとplayer)が追加されていることがわかります。