Langage de requête
Effectuer des requêtes sur une base OrientDB
Afin de convenir au plus grand nombre de développeur, OrientDB utilise le langage SQL pour effectuer des requêtes.
Toutefois, des améliorations et des modifications ont été apportées afin de coller au modèle orienté graphe, par exemple pour traverser des nœuds.
Méthode : Fonctions et mot-clé utiles pour l'exploitation des graphes
in('nom_arc')
retourne les nœuds des arcs entrants du type spécifié en paramètre. Utilisée seule, cette fonction retourne une liste d'adresses (@rid)
out('nom_arc')
retourne les nœuds des arcs sortants du type spécifié en paramètre. Utilisée seule, cette fonction retourne une liste d'adresses (@rid)
set()
ajoute les valeurs dans un ensemble. C'est une fonction permettant de créer une collection d'adresse (@rid)
expand()
utilisée sur une collection, cela permet de l'exploiter comme un résultat et de l'afficher
size()
utilisée sur in() ou out(), cela permet de retourner le nombre de résultat
Exemple : Utilisation des fonctions
Récupérer toutes les adresses des nœuds entrants de l'utilisateur Jean
SELECT in() FROM User WHERE name="Jean"
Exploiter le résultat précédent en affichant les résultants et non les adresses
SELECT expand(in()) FROM User WHERE name="Jean"
Récupérer tous les nœuds entrants "Friend" de l'utilisateur Jean
SELECT in('Friend') FROM User WHERE name="Jean"
Exploiter la requête précédente pour afficher les résultats en utilisant expand()
SELECT expand(in('Friend')) FROM User WHERE name="Jean"
Complément :
TRAVERSE
permet de traverser les nœuds. Utilisée avec in() ou out(), permet d'exploiter la liste d'adresse et de l'afficher comme résultat
Exploiter les requêtes précédentes pour afficher les résultats
TRAVERSE in('Friend') FROM (SELECT * FROM User WHERE name="Jean")