本文へスキップ
BecomeCoder

Neo4jコース · 第5章 データを更新する · レッスン25

ラベル・プロパティを外す ― REMOVE / SET x.prop = null

ブラウザで完結

導入

SET で追加したものを取り消したいときは、REMOVE あるいは null を使った SET を使います。

説明

プロパティを削除するには、2つの方法があります。

MATCH (p:Person {name: 'Alice'})
REMOVE p.city
MATCH (p:Person {name: 'Alice'})
SET p.city = null

どちらも city プロパティをノードから取り除きます。Cypherでは、プロパティに null を設定することは「そのプロパティ自体を削除する」ことと同じ意味になる点に注意してください(RDBのように「値がnullの列」として残るわけではありません)。

ラベルを外すには REMOVE を使います。

MATCH (p:Person {name: 'Alice'})
REMOVE p:Actor

これで、前のレッスンで SET p:Actor によって追加した :Actor ラベルが取り除かれ、Alice ノードは再び :Person ラベルだけを持つ状態に戻ります。

まとめると、SETREMOVE は対になる操作です。「加える・書き換える」は SET、「取り除く」は REMOVE(プロパティの削除だけは SET x = null でも可)と覚えておきましょう。

実際に動かしてみよう

下のエディタに Cypher を書いて「実行」を押すと、ブラウザ内の学習用グラフDBで結果が表示されます(本物のNeo4jではなく、教材の範囲を再現した軽量な自作エンジンです)。最初から「映画と俳優+小さなソーシャルグラフ」が入っているので、MATCH 系の例はそのまま結果が返ります。CREATE / MERGE / SET などで書き換えた状態は積み重なり、「グラフを初期状態に戻す」でいつでもサンプルに戻せます。

Cypher — ブラウザ内で実行(学習用グラフDB)

Cypherクエリを書いて実行できる学習用グラフDBを読み込みます(本物のNeo4jではなく、教材の範囲を再現した軽量な自作エンジンです。映画と俳優の小さなサンプルグラフが最初から入っています)。
スクロールして表示された時点でも自動で読み込まれます。