Vue d'ensemble
La clause update() est utilisée pour mettre à jour les valeurs des propriétés (sauf _id et _uuid) des nodes et des edges qui répondent aux conditions données.
Syntaxe
// Mettre à jour les nodes
update().nodes(<filter>)
.set({<property1>: <value1>, <property2>: <value2> ...})
.limit(<N>)
// Mettre à jour les edges
update().edges(<filter>)
.set({<property1>: <value1>, <property2>: <value2> ...})
.limit(<N>)
- Les nodes ou edges à mettre à jour doivent répondre aux conditions spécifiées dans la méthode
nodes()ouedges(). Laissez vide pour spécifier tous les nodes ou edges. - Fournir de nouvelles valeurs pour les properties dans la méthode
set(). - Utilisez éventuellement la méthode
limit()pour restreindre le nombre de nodes ou edges à mettre à jour. - Permet de définir un alias pour la clause, avec le type de données étant soit NODE, soit EDGE.
Exemple de Graph

Exécutez ces UQL lignes par ligne dans un graphset vide pour créer ce graph :
create().node_schema("user").edge_schema("follow")
create().node_property(@user, "name").node_property(@user, "age", int32).edge_property(@follow, "time", datetime)
insert().into(@user).nodes([{_id:"U001", _uuid:1, name:"Jason", age:30}, {_id:"U002", _uuid:2, name:"Tim"}, {_id:"U003", _uuid:3, name:"Grace", age:25}, {_id:"U004", _uuid:4, name:"Ted", age:26}])
insert().into(@follow).edges([{_uuid:1, _from_uuid:4, _to_uuid:1, time:"2021-9-10"}, {_uuid:2, _from_uuid:3, _to_uuid:2, time:"2020-3-12"}, {_uuid:3, _from_uuid:4, _to_uuid:2, time:"2023-7-30"}])
Exemples
Mettre à jour les Nodes
update().nodes({name == "Tim"}).set({name: "Tom"})
Cela met à jour la propriété name des nodes dont le name est Tim. Le node avec _id U002 est mis à jour.
Mettre à jour les Edges
update().edges({time > "2021-5-1"}).set({time: dateAdd(time, 1, "day")}) as edges
return edges{*}
Cela met à jour la propriété time des edges dont le time est postérieur à 2021-5-1, à un jour après.
Résultat :
| _uuid | _from | _to | _from_uuid |
_to_uuid | time |
|---|---|---|---|---|---|
| 1 | U004 | U001 | 4 | 1 | 2021-09-11 00:00:00 |
| 3 | U004 | U002 | 4 | 2 | 2023-07-31 00:00:00 |
Mettre à jour Tous les Nodes/Edges
update().nodes().set({age: age + 1}) as n
return table(n.name, n.age)
Résultat :
| name | age |
|---|---|
| Jason | 31 |
| Tom | null |
| Grace | 26 |
| Ted | 27 |
Mettre à jour un Nombre Limité de Nodes/Edges
update().nodes({@user}).set({name: lower(name)}).limit(2) as nodes
return nodes{*}
Cela met à jour la propriété name des nodes @user en caractères minuscules, mais seulement pour deux nodes.
Résultat :
| _id | _uuid | name | age |
|---|---|---|---|
| U001 | 1 | jason | 31 |
| U002 | 2 | tom | null |
Raisons communes des Échecs
- La mise à jour échoue lorsque
_uuidou_idest inclus dans la méthodeset(), car les propriétés d'identifiant unique ne peuvent pas être mises à jour.