web-dev-qa-db-fra.com

Changer l'étiquette du noeud dans neo4j

J'ai créé un nœud avec une mauvaise étiquette.
Existe-t-il un moyen de changer l’étiquette du noeud ou le type de relation sans le recréer? J'ai essayé quelque chose comme: 

MATCH n WHERE Id (n) = 14 SET n.Labels = 'Personne'

mais c'est la faute ...

16
tsdaemon

Vous pouvez modifier les nœuds associés à une étiquette, mais vous ne pouvez pas modifier le type d'une relation. Sur le plan conceptuel, si vous sortez votre poulet d'un élevage et le mettez dans un autre, vous n'aurez pas modifié la substance du poulet. Mais au moment où vous sortez le poulet du four et le mettez dans votre bouche, ce n'est plus un poulet (sauf de façon équivoque). Vous pouvez décider d'appeler votre chat Whiskers au lieu de Charlie , mais si vous décidez que vous voulez un anaconda pour animal de compagnie au lieu d'un chat, cela n'aide pas de donner un nouveau nom au chat. De même, un nœud peut être membre de différentes étiquettes et rester le même, mais le type de relation est constitutif. Donc: vous pouvez ajouter et supprimer des étiquettes à votre guise, mais si vous voulez un type de relation différent, alors ce que vous voulez est vraiment une relation différente. C'est aussi pourquoi une relation a exactement un type, mais un nœud peut avoir plusieurs étiquettes.

Les étiquettes sont des ensembles arbitraires ou des sacs de nœuds. La grammaire pour changer de sac a déjà été donnée, mais pour être complet:

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)
18
jjaderberg
MATCH (n:OLD_LABEL {id:14})
REMOVE n:OLD_LABEL
SET n:NEW_LABEL

Je suppose que cette requête s’explique elle-même. 

26
tstorms

Cela devrait fonctionner pour changer les étiquettes sur plusieurs nœuds simultanément:

MATCH (n:OLD_LABEL)
WHERE ID(n) IN [7, 8]
REMOVE n:OLD_LABEL
SET n:NEW_LABEL
1
Thomas Calhoun Jr.

Essaye ça:

Match (n:person{name:'John Jjones'}) Set n.name = 'John Jones'
0
Wayne Snow