Neo4j GraphDBブートキャンプ完全版: WHERE (セクション22/49)
WHERE句は、MATCH句と組み合わせて使用され、ノードやリレーションシップをフィルタリングするためのもので、ラベルやプロパティ、値の範囲に基づいた結果の制約が可能です。
文字列マッチングやブール演算子(AND, OR, XOR, NOT)のサポートにより、複雑な条件でのデータフィルタリングやパターンの存在確認が行えます。
WHERE句は、Neo4jのCypherクエリ言語において、グラフデータベースからの精密な結果を得るために不可欠であり、コースの進行とともに高度なクエリ技術を習得する上で広く使用されます。
2024年版のComplete Neo4j GraphDBブートキャンプのこのセクションでは、CypherクエリでノードとリレーションシップをフィルタリングできるWHERE句について深く掘り下げます。WHERE句は、MATCH句と組み合わせて使用し、パターンマッチング結果を制限します。
WHERE句について学んだ重要なポイントは以下の通りです。
ノードラベルでフィルタリングできます。例えば、WHERE n:Person とすると、Personラベルを持つノードのみを返します。
ノードプロパティでフィルタリングできます。例えば、WHERE n.born > 1960 とすると、1960年以降に生まれたPersonノードのみを返します。
リレーションシッププロパティでフィルタリングでき、単一の値またはリストのプロパティを処理できます。
STARTS WITHを使用した接頭辞検索、ENDS WITHを使用した接尾辞検索、CONTAINSを使用した部分文字列検索など、文字列マッチングが可能です。
AND、OR、XOR、NOTのブール演算子をサポートし、複雑な条件を指定できます。
WHERE n.name >= 'A' AND n.name <= 'C' のように、値の範囲を指定できます。
WHERE (n)-[:FOLLOWS]->({name:'Angela'}) のように、プロパティを持つパターンでフィルタリングできます。
存在サブクエリを使用して、パターンの存在をチェックできます。
インストラクターは、グラフ検索におけるWHERE句の柔軟性と強力さを実演するために、多くのハンズオン例を紹介しました。ラベル、プロパティ、文字列マッチ、値の範囲、グラフパターンに基づいてノードとリレーションシップをフィルタリングできることは、グラフから正確な結果を得るために不可欠です。
要約すると、WHERE句はNeo4jのCypherクエリ言語における重要なツールであり、MATCH句によって返されるノードとリレーションシップを絞り込むことができます。その機能をマスターすることで、グラフデータベースに対して非常に的を絞った問い合わせができるようになります。このセクションで学んだスキルは、コースでより高度なCypherクエリに進むにつれて、広く使用されるようになります。
この記事が気に入ったらサポートをしてみませんか?