Vue d’ensemble
L'instruction SET
vous permet de mettre à jour, ajouter ou supprimer des propriétés sur les nodes et edges. Ces nodes ou edges doivent d'abord être récupérés à l'aide de l'instruction MATCH
.
Notez que le libellé sur un node ou un edge n'est pas sujet à modification.
<set statement> ::= "SET" <set item list>
<set item list> ::= <set item> [ { "," <set item> }... ]
<set item> ::= <set property item> | <set all properties item>
<set property item> ::=
<binding variable reference> "." <property name> "=" <value expression>
<set all properties item> ::=
<binding variable reference> "=" "{" [ <property key value pair list> ] "}"
Détails
- Les valeurs des propriétés système (
_id
,_uuid
,_from
,_to
,_from_uuid
, et_to_uuid
) ne peuvent pas être modifiées.
Exemple de Graph
Chacun des exemples suivants commence par ce graph :
Pour créer ce graph, exécutez la requête suivante sur un graph vide :
INSERT (rowlock:User {_id: "U01", name: "rowlock"}),
(brainy:User {_id: "U02", name: "Brainy", gender: "male"}),
(purplechalk:User {_id: "U03", name: "purplechalk", gender: "female"}),
(mochaeach:User {_id: "U04", name: "mochaeach", gender: "female"}),
(c:Club {_id: "C01"}),
(rowlock)-[:Follows {createdOn: "2024-1-5"}]->(brainy),
(purplechalk)-[:Follows {createdOn: "2024-2-1"}]->(brainy),
(mochaeach)-[:Follows {createdOn: "2024-2-10}]->(brainy),
(brainy)-[:Joins {memberNo: 1}]->(c)
Mise à Jour des Propriétés
Cette requête met à jour la propriété gender
pour le node n
récupéré, et la propriété createdOn
pour l'edge e
récupéré.
MATCH (n:User {name: 'rowlock'})-[e:Follows]->(:User {name: 'Brainy'})
SET n.gender = 'male', e.createdOn = '2024-1-7'
RETURN n.gender, e.createdOn
Résultat :
n.gender | e.createdOn |
---|---|
male | 2024-01-07 00:00:00 |
Suppression des Propriétés
Cette requête supprime la valeur de la propriété gender
pour le node n
récupéré.
MATCH (n:User {name: 'mochaeach'})
SET n.gender = null
RETURN n
Résultat : n
_id | _uuid | schema | values |
---|---|---|---|
U04 | Sys-gen | User | {name: "mochaeach", gender: null} |
Remplacement de Toutes les Propriétés
Cette requête remplace toutes les propriétés pour le node n
récupéré par une map : mettant à jour la valeur de la propriété name
, supprimant les valeurs d'autres propriétés (personnalisées).
MATCH (n:User {name: 'purplechalk'})
SET n = {name: 'MasterSwift'}
RETURN n
Résultat : n
_id | _uuid | schema | values |
---|---|---|---|
U03 | Sys-gen | User | {name: "MasterSwift", gender: null} |
Suppression de Toutes les Propriétés
Cette requête supprime toutes les propriétés (personnalisées) pour le node n
récupéré avec une map vide.
MATCH (n:User {name: 'rowlock'})
SET n = {}
RETURN n
Résultat : n
_id | _uuid | schema | values |
---|---|---|---|
U03 | Sys-gen | User | {name: null, gender: null} |
Mise à Jour des Propriétés avec CASE
Cette requête attribue des valeurs à la propriété weight
des edges marqués Follows
, déterminées par leurs valeurs createdOn
.
MATCH ()-[e:Follows]->()
SET e.weight = CASE
WHEN e.createdOn < '2024-1-31' THEN 10
ELSE 8
END
RETURN e
Résultat : e
_uuid |
_from |
_to |
_from_uuid |
_to_uuid |
schema |
values |
---|---|---|---|---|---|---|
Sys-gen | U01 | U02 | UUID of U01 | UUID of U02 | Follows | {createdOn: "2024-01-05 00:00:00", weight: 10} |
Sys-gen | U04 | U02 | UUID of U04 | UUID of U02 | Follows | {createdOn: "2024-02-10 00:00:00", weight: 8} |
Sys-gen | U03 | U02 | UUID of U03 | UUID of U02 | Follows | {createdOn: "2024-02-01 00:00:00", weight: 8} |
Valeur et Type de Propriété Incompatibles
Cette requête met à jour la propriété memberNo
(de type int32) de l'edge récupéré avec une chaîne de caractères.
MATCH ()-[e:Joins]->()
SET e.memberNo = 'm2'
RETURN e
Résultat : e
_uuid |
_from |
_to |
_from_uuid |
_to_uuid |
schema |
values |
---|---|---|---|---|---|---|
Sys-gen | C01 | U02 | UUID of C01 | UUID of U02 | Follows | {memberNo: 0} |
Si la valeur fournie est d'un type différent de celui de la propriété et ne peut pas être convertie au bon type, la valeur par défaut pour ce type de propriété sera utilisée à la place.