Neo4j-where-clause
Neo4j-Where Clause
SQLと同様に、Neo4j CQLはCQL MATCHコマンドでWHERE句を提供して、MATCHクエリの結果をフィルタリングします。
構文
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句を使用して国インドに属するすべてのプレーヤー(ノード)を返すサンプルサイファークエリです。
MATCH (player)
WHERE player.country = "India"
RETURN player
上記のクエリを実行するには、次の手順を実行します-
ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のスクリーンショットに示すように、URL *http://localhost:7474/ を使用して、Neo4jの組み込みブラウザーアプリを開きます。
- ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。
結果
実行すると、次の結果が得られます。
複数の条件を持つWHERE句
WHERE句を使用して、複数の条件を確認することもできます。
構文
以下は、複数の条件でNeo4jでWHERE句を使用する構文です。
MATCH (emp:Employee)
WHERE emp.name = 'Abc' AND emp.name = 'Xyz'
RETURN emp
例
以下は、2つの条件を使用してNeo4jデータベース内のノードをフィルタリングするサンプルサイファークエリです。
MATCH (player)
WHERE player.country = "India" AND player.runs >=175
RETURN player
上記のクエリを実行するには、次の手順を実行します-
ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のスクリーンショットに示すように、URL *http://localhost:7474/ を使用して、Neo4jの組み込みブラウザーアプリを開きます。
- ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。
結果
実行すると、次の結果が得られます。
Where句との関係の使用
Where句を使用して、関係を使用してノードをフィルター処理することもできます。
例
データベースに次のグラフがあると仮定します。
以下に示すWHERE句を使用してインドのトップスコアラーを取得するサンプルサイファークエリを次に示します。
MATCH (n)
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"})
RETURN n
上記のクエリを実行するには、次の手順を実行します-
ステップ1 *-Neo4jデスクトップアプリを開き、Neo4jサーバーを起動します。 次のスクリーンショットに示すように、URL *http://localhost:7474/ を使用して、Neo4jの組み込みブラウザーアプリを開きます。
- ステップ2 *-目的のクエリをコピーしてドルプロンプトに貼り付け、次のスクリーンショットで強調表示されている(クエリを実行する)再生ボタンを押します。
結果
実行すると、次の結果が得られます。 ここで、Neo4jがノードを返したことがわかります。これは、ノード名がIndiaである国との関係がTOP_SCORER_OFになっています。