見出し画像

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のスキルを高めていきましょう。

「超本当にドラゴン」へ

この記事が気に入ったらサポートをしてみませんか?