Constructeur de requêtes Cypher
Dans le cadre de l'intégration de Open ENT avec Neo4j, il est essentiel de construire dynamiquement des requêtes Cypher afin de récupérer, filtrer et manipuler des données efficacement.
Le constructeur de requêtes Cypher permet de générer dynamiquement des requêtes adaptées aux critères de recherche, en fonction des paramètres fournis.
Paramètres des variables
Login de la personne
ID de la personne
Nom de la personne
Profil de l'utilisateur
ID du groupe
Nom du groupe
Statut de l'utilisateur
Fonction/Rôle de l'utilisateur
- User
- Group
- Function
Requête de base Utilisateur
Utilisateur par login
MATCH (u:User {login: "nabeel.mujuthaba001"}) RETURN u.id as id, u.login as login, u.lastName as lastName, u.email as email, u.password as password, u.structures as structures
Utilisateur par identifiant
MATCH (u:User {id: "0e799eda-9d02-49bb-9f00-9c37be68441a"})
RETURN u
Utilisateur par nom
MATCH (u:User {lastName: "Dupont"})
RETURN u
Utilisateur par profil
MATCH (u:User)-[:IN]->(g:Group {filter: "student"})
RETURN u
Utilisateur par identifiant avec ses profils, ses structures, ses groupes et ses rôles
MATCH (u:User {id: "0e799eda-9d02-49bb-9f00-9c37be68441a"})
WHERE u.login IS NOT NULL
OPTIONAL MATCH (u)-[:IN]->(gp:ProfileGroup)
OPTIONAL MATCH (gp)-[:DEPENDS]->(s:Structure)
OPTIONAL MATCH (gp)-[:DEPENDS]->(c:Class)
OPTIONAL MATCH (u)-[rf:HAS_FUNCTION]->(f:Function)
OPTIONAL MATCH (u)<-[:RELATED]-(child:User)
RETURN DISTINCT u, gp, s, c, f, child
Requête de base pour les groupes
Groupe par identifiant
MATCH (g:Group {id: "68224-1736882120662"})
RETURN g
ProfilGroup par nom
MATCH (p:ProfileGroup {name : 'Quatrième-2-Personnel'}) RETURN p;
Nombre de groupes
MATCH (g:Group)
RETURN count(g) as count
Toutes les relations et les noeuds liés
MATCH (p:ProfileGroup {name: 'Quatrième-2-Personnel'})-[r]-(other)
RETURN p, r, other;
Requête de base pour les fonctions (rôles)
Utilisateur par fonction
MATCH (u:User)-[:HAS_FUNCTION]->(f:Function)
WHERE f.name = 'AdminLocal'
RETURN u.id AS userId, u.login AS login, f.name AS functionName