Un modèle de subgraph subgraph([<path_template1>, <path_template2>, ...])
décrit et recherche un modèle de subgraph en utilisant plusieurs modèles de chemin. Ces modèles de chemin s'intersectent aux nodes ou edges, qui reçoivent des alias lors de leur première apparition dans un modèle de chemin et sont ensuite appelés lorsqu'ils apparaissent à nouveau.
Pour l'utilisation des modèles de base
n()
,e()
et autres, veuillez vous référer à Modèles de Base.
L'alias de déclaration n'est pas pris en charge pour la commande
subgraph()
, ni pour l'alias de déclaration de chaque modèle de chemin dans la commandesubgraph()
.
Alias Relationnel Unique
Exemple : comme le montre la structure de chemin dans le graph ci-dessous, trouver les clients qui ont reçu un transfert du Client CU013 et CU016, retourner avec toutes les propriétés.
subgraph([
n({_id == "CU013"}).re().n({@card}).re({@transfer}).n({@card} as n).le().n({@customer} as c),
n({_id == "CU016"}).re().n({@card}).re({@transfer}).n(n)
])
return c{*}
Analyse : ce subgraph utilise l'Alias Node n pour relier les deux chemins entre eux.
Multiple Alias Relationnel
Exemple : comme le montre la structure de chemin dans le graph ci-dessous, trouver les chemins circulaires : 3 cartes de client distinctes effectuent un transfert circulaire dans une seule direction, retourner les clients en groupe.
subgraph([
n({@customer} as A1).re().n({@card} as C1),
n({@customer && _uuid < A1._uuid} as A2).re().n({@card} as C2),
n({@customer && _uuid < A2._uuid} as A3).re().n({@card} as C3),
n(C1).re().n(C2).re().n(C3).re().n(C1)
])
return A1{*}, A2{*}, A3{*}
Analyse : ce subgraph utilise l'Alias Node C1, C2, et C3 pour relier 4 chemins entre eux.
Exemple : comme le montre la structure de chemin dans le graph ci-dessous, trouver les informations de carte bancaire lorsque 2 cartes distinctes utilisent les mêmes adresses email, numéros de téléphone, dispositifs, retourner avec toutes les propriétés.
subgraph([
n({@card} as C1).e().n({@email}).e().n({@card && _uuid > C1._uuid} as C2),
n(C1 as C11).e().n({@phone}).e().n(C2 as C22),
n(C11).e().n({@device}).e().n(C22)
])
return table(C11._id, C22._id)
Analyse : le subgraph utilise l'Alias Node C1, C2 pour relier 3 chemins entre eux. Si un alias doit être référencé plusieurs fois, il doit être redéfini chaque fois après avoir été référencé : C1 est redéfini en C11, C2 en C22 dans l'exemple ci-dessus.