Vue d’ensemble
La clause de motif de graph YIELD
peut être utilisée à la fin d'une instruction MATCH
pour sélectionner les colonnes de la table de liaison afin de permettre leur exposition dans les parties suivantes de la requête.
<match statement> ::=
[ "OPTIONAL" ] "MATCH" <graph pattern> [ <graph pattern yield clause> ]
<graph pattern yield clause> ::=
"YIELD" <graph pattern yield item> [ { "," <graph pattern yield item> }... ]
<graph pattern yield item> ::= <element variable> | <path variable>
Exemple de Graph
Les exemples suivants s'exécutent contre ce graph :
Pour créer ce graph, exécutez la requête suivante contre un graph vide :
INSERT (rowlock:User {_id: 'U01', name: 'rowlock'}),
(brainy:User {_id: 'U02', name: 'Brainy'}),
(purplechalk:User {_id: 'U03', name: 'purplechalk'}),
(mochaeach:User {_id: 'U04', name: 'mochaeach'}),
(lionbower:User {_id: 'U05', name: 'lionbower'}),
(c01:Club {_id: 'C01', since: 2005}),
(c02:Club {_id: 'C02', since: 2005}),
(rowlock)-[:Follows {createdOn: '2024-1-5'}]->(brainy),
(mochaeach)-[:Follows {createdOn: '2024-2-10'}]->(brainy),
(brainy)-[:Follows {createdOn: '2024-2-1'}]->(purplechalk),
(purplechalk)-[:Follows {createdOn: '2024-5-3'}]->(lionbower),
(brainy)-[:Joins {memberNo: 1}]->(c01),
(lionbower)-[:Joins {memberNo: 2}]->(c01),
(mochaeach)-[:Joins {memberNo: 9}]->(c02)
MATCH YIELD
Cette requête renvoie uniquement n1
, car c'est la seule variable spécifiée dans la clause YIELD
:
MATCH (n1:User), (n2:Club)
YIELD n1
RETURN *
Résultat : n1
_id | _uuid | schema | valeurs |
---|---|---|---|
U05 | Sys-gen | User | {name: "lionbower"} |
U05 | Sys-gen | User | {name: "lionbower"} |
U04 | Sys-gen | User | {name: "mochaeach"} |
U04 | Sys-gen | User | {name: "mochaeach"} |
U03 | Sys-gen | User | {name: "purplechalk"} |
U03 | Sys-gen | User | {name: "purplechalk"} |
U02 | Sys-gen | User | {name: "Brainy"} |
U02 | Sys-gen | User | {name: "Brainy"} |
U01 | Sys-gen | User | {name: "rowlock"} |
U01 | Sys-gen | User | {name: "rowlock"} |
Cette requête déclenche une erreur de syntaxe puisque n2
n'est pas sélectionné dans la clause YIELD
, donc il ne peut pas être accédé par l'instruction RETURN
:
MATCH (n1:User), (n2:Club)
YIELD n1
RETURN n1, n2
Résultat : n2
non trouvé
Cette requête renvoie n1
et e
:
MATCH (n1:Club)
MATCH (n2:Club)<-[e:Joins WHERE e.memberNo < 3]-()
YIELD e
RETURN *
Résultat :
n1
_id | _uuid | schema | valeurs |
---|---|---|---|
C01 | Sys-gen | Club | {since: 2005} |
C01 | Sys-gen | Club | {since: 2005} |
C02 | Sys-gen | Club | {since: 2005} |
C02 | Sys-gen | Club | {since: 2005} |
e
_uuid |
_from |
_to |
_from_uuid |
_to_uuid |
schema |
valeurs |
---|---|---|---|---|---|---|
Sys-gen | U02 | C01 | UUID de U02 | UUID de C01 | Joins | {memberNo: 1} |
Sys-gen | U02 | C01 | UUID de U02 | UUID de C01 | Joins | {memberNo: 1} |
Sys-gen | U05 | C01 | UUID de U05 | UUID de C01 | Joins | {memberNo: 2} |
Sys-gen | U05 | C01 | UUID de U05 | UUID de C01 | Joins | {memberNo: 2} |