導入
既にあるノードやリレーションシップのプロパティを、後から追加したり書き換えたりするには SET を使います。
説明
MATCH (p:Person {name: 'Alice'})
SET p.born = 1990
RETURN p
このクエリは、まず MATCH で Alice を見つけ、SET p.born = 1990 でその born プロパティを設定します。もし born プロパティがまだ無ければ新しく追加され、既にあれば値が上書きされます。
複数のプロパティを一度に設定することもできます。
MATCH (p:Person {name: 'Alice'})
SET p.born = 1990, p.city = 'Tokyo'
プロパティをまとめて(マップとして)渡し、既存の値にマージしたい場合は += を使います。
MATCH (p:Person {name: 'Alice'})
SET p += {born: 1990, city: 'Tokyo'}
+= を使うと、渡したマップに含まれるプロパティだけが更新(追加・上書き)され、渡さなかった既存のプロパティ(たとえば name)はそのまま残ります。これは全体をまるごと置き換えるのではなく「差分を反映する」動きなので、既存データを保ったまま一部だけ更新したい場合に便利です。
SET はラベルの追加にも使えます。
MATCH (p:Person {name: 'Alice'})
SET p:Actor
これで Alice ノードは :Person に加えて :Actor というラベルも持つようになります。1つのノードが複数のラベルを持てるのも、プロパティグラフモデルの柔軟な点です。