間違ったラベルでノードを作成しました。
ノードラベルまたは関係タイプを再作成せずに変更する方法はありますか?私は何かを試しました
MATCH n WHERE Id(n)= 14 SET n.Labels = 'Person'
しかしそれは誤りです...
ラベルに関連付けられているノードは変更できますが、関係のタイプは変更できません。概念的には、ある鶏舎から鶏肉を取り出して別の鶏小屋に入れても、鶏肉の内容は変更されていません。しかし、鶏肉をオーブンから取り出して口に入れると、鶏肉ではなくなります(あいまいな場合を除きます)。 Charlieではなく、猫をWhiskersと呼ぶこともできますが、猫ではなくペットのアナコンダが必要な場合は、新しい名前の猫。同様に、ノードは異なるラベルのメンバーになり、同じノードのままにすることができますが、関係のタイプは構成的です。したがって、ラベルは好きなように追加したり削除したりできますが、別の関係タイプが必要な場合は、実際に必要なのは別の関係です。これが、リレーションシップのタイプが1つだけである理由でもありますが、ノードは多くのラベルを持つことができます。
ラベルはノードの任意のセットまたはバッグです。バッグを交換するための文法はすでに与えられていますが、完全を期すために:
MATCH (n)
WHERE ID(n) = 14
REMOVE n:Whiskers
SET n:Charlie
MATCH (petless_and_unhappy)-[whiskers:CAT]->(petful_and_unhappy)
DELETE whiskers
CREATE (petless_and_unhappy-[sir_hiss:ANACONDA]->(peftul_and_happy)
MATCH (n:OLD_LABEL {id:14})
REMOVE n:OLD_LABEL
SET n:NEW_LABEL
このクエリはそれ自体を説明すると思います。
これは、複数のノードのラベルを同時に変更する場合に機能します。
MATCH (n:OLD_LABEL)
WHERE ID(n) IN [7, 8]
REMOVE n:OLD_LABEL
SET n:NEW_LABEL
これを試して:
Match (n:person{name:'John Jjones'}) Set n.name = 'John Jones'