Neo4j GraphDBブートキャンプ完全版: RETURN (セクション6/49)
Neo4jのRETURN句はSQLのSELECT文に相当し、クエリ結果で表示するデータを指定する。
ノードのプロパティ、リレーションシップのタイプ、エイリアス、重複除外、すべてのプロパティ、ラベル、リレーションシップなどを返すことができる。
RETURN句を習得することは、Cypherに習熟しNeo4jを活用するためのカギである。
2024年版のNeo4j GraphDBブートキャンプのセクション6では、Neo4jでのデータクエリの基本である`RETURN`句について詳しく見ていきます。`RETURN`句は、Cypherクエリの実行後に結果セットで何を表示するかを指定します。
RETURNとSQL SELECT
Neo4jの`RETURN`句は、SQLの`SELECT`文に相当します。SQLでは`SELECT`を使用してテーブルからデータを取得します。
SELECT name FROM Employees
Neo4jのCypherクエリ言語でも、同様の方法で`RETURN`を使用します。
MATCH (n)
RETURN n.name
どちらもリテラル値を返すことができます。
SELECT 'I love you'
RETURN 'I love you'
複数の列/値を返すこともできます。
SELECT city, 'I love my city' FROM Employees
MATCH (n)
RETURN n.city, 'I love my city'
ノードのプロパティを返す
Neo4jでノードのプロパティを返すには、ノード変数の後にドット表記を使用します。
MATCH (n {name: 'Peter', age: 25})
RETURN n.age, n.name
これは、指定されたパターンに一致するノードの`age`と`name`プロパティを返します。プロパティがノードに存在しない場合、Neo4jは`null`を返します。
リレーションシップのタイプを返す
`type()`関数を使用して、ノード間のリレーションシップのタイプを返すことができます。
MATCH (n)-[r]->(m)
RETURN type(r)
これは、マッチしたパターンの各リレーションシップのタイプ(例:`ACTED_IN`、`DIRECTED`)を返します。
エイリアスの使用
エイリアスを使用すると、`AS`キーワードを使用して結果の列の名前を変更できます。
MATCH (n)
RETURN n.name AS NAME, n.born AS AGE
結果のテーブルには、それぞれのプロパティ値を持つ`NAME`列と`AGE`列が表示されます。
重複を除いた値を返す
重複を除いてユニークな値のみを返すには、`DISTINCT`を使用します。
MATCH (n)
RETURN DISTINCT n.born
ORDER BY n.born ASC
すべてのプロパティを返す
`properties()`を使用して、ノードまたはリレーションシップのすべてのプロパティを返すことができます。
MATCH (n {name: 'Tom Hanks'})
RETURN properties(n)
MATCH (n {name: 'Tom Hanks'})-[r]->()
RETURN properties(r)
ラベルとリレーションシップを返す
ノードのすべてのラベルを返すには、`labels()`を使用します。
MATCH (n {name: 'Victor'})
RETURN labels(n)
そして、パス内のすべてのリレーションシップを返すには:
MATCH p=({name: 'Tom'})-[]->()-[]-({title: 'Cloud Atlas'})
RETURN relationships(p)
これは、指定されたパス内のリレーションシップのコレクションを返します。
`RETURN`句は非常に汎用性が高く、グラフクエリから必要なデータを柔軟に指定することができます。`RETURN`を習得することは、Cypherに習熟し、つながったデータの管理とクエリのためにNeo4jの力を発揮するためのカギとなります。これらの概念を練習し、実験を重ねることで、Neo4jのスキルを高めていきましょう。
この記事が気に入ったらサポートをしてみませんか?