Changer l'étiquette du noeud dans neo4j

j'ai créé un noeud avec une fausse étiquette.

Y a-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 Où Id (n)=14 SET N. Labels = 'Person '

mais c'est une faute...

15
demandé sur tsdaemon 2014-03-20 23:07:57

4 réponses

vous pouvez changer les noeuds associés à une étiquette mais vous ne pouvez pas changer le type d'une relation. Conceptuellement, si vous sortez votre poulet d'un poulailler et le mettez dans un autre, vous n'avez 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 équivoque). Vous pouvez décider d'appeler votre chat Moustaches au lieu de Charlie , mais si vous décidez vous voulez un anaconda pour un animal de compagnie au lieu d'un chat, cela n'aide pas à donner un nouveau nom au chat. De même, un noeud peut être membre de différentes étiquettes et rester le même noeud, mais le type de relation est constitutif. Donc: vous pouvez ajouter et supprimer des étiquettes comme vous voulez, 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 ensembles ou sacs arbitraires de noeuds. La grammaire pour changer les sacs a déjà été donnée, mais pour l'exhaustivité:

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
répondu jjaderberg 2014-03-21 22:29:43
MATCH (n:OLD_LABEL {id:14})
REMOVE n:OLD_LABEL
SET n:NEW_LABEL

Suppose que cette requête s'explique.

24
répondu tstorms 2014-03-21 09:02:18

cela devrait fonctionner pour changer les étiquettes sur plusieurs noeuds simultanément:

MATCH (n:OLD_LABEL)
WHERE ID(n) IN [7, 8]
REMOVE n:OLD_LABEL
SET n:NEW_LABEL
1
répondu Thomas Calhoun Jr. 2018-06-16 05:36:09

essayez ceci:

Match (n:person{name:'John Jjones'}) Set n.name = 'John Jones'
0
répondu Wayne Snow 2018-07-29 09:06:13