Neo4j-Where句

SQLと同様に、Neo4j CQLは、MATCHクエリの結果をフィルタリングするためにCQLMATCHコマンドにWHERE句を提供しています。

構文

以下は、WHERE句の構文です。

MATCH (label)  
WHERE label.country = "property" 
RETURN label

例に進む前に、以下に示すようにデータベースに5つのノードを作成します。

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"}
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"}
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, 
   country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
CREATE(Ind:Country {name: "India", result: "Winners"})

以下は、WHERE句を使用してインドの国に属するすべてのプレーヤー(ノード)を返すサンプルのCypherクエリです。

MATCH (player)  
WHERE player.country = "India" 
RETURN player

上記のクエリを実行するには、次の手順を実行します-

Step 1− Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。URLを使用してNeo4jの組み込みブラウザーアプリを開きますhttp://localhost:7474/ 次のスクリーンショットに示すように。

Step 2 −目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている再生ボタンを押します(クエリを実行します)。

結果

実行すると、次の結果が得られます。

複数の条件を持つWHERE句

WHERE句を使用して、複数の条件を検証することもできます。

構文

以下は、Neo4jで複数の条件でWHERE句を使用するための構文です。

MATCH (emp:Employee)  
WHERE emp.name = 'Abc' AND emp.name = 'Xyz' 
RETURN emp

以下は、2つの条件を使用してNeo4jデータベース内のノードをフィルタリングするサンプルのCypherクエリです。

MATCH (player)  
WHERE player.country = "India" AND player.runs >=175 
RETURN player

上記のクエリを実行するには、次の手順を実行します-

Step 1− Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。URLを使用してNeo4jの組み込みブラウザーアプリを開きますhttp://localhost:7474/ 次のスクリーンショットに示すように。

Step 2 −目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている再生ボタンを押します(クエリを実行します)。

結果

実行すると、次の結果が得られます。

Where句との関係の使用

Where句を使用して、関係を使用してノードをフィルタリングすることもできます。

データベースに次のグラフがあるとします。

以下は、以下に示すように、WHERE句を使用してインドの最高得点者を取得するためのサンプルCypherクエリです。

MATCH (n) 
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"}) 
RETURN n

上記のクエリを実行するには、次の手順を実行します-

Step 1− Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。URLを使用してNeo4jの組み込みブラウザーアプリを開きますhttp://localhost:7474/ 次のスクリーンショットに示すように。

Step 2 −目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている再生ボタンを押します(クエリを実行します)。

結果

実行すると、次の結果が得られます。ここで、Neo4jが、ノードの名前がIndiaである国にTOP_SCORER_OFの関係を持つノードを返したことを確認できます。