Neo4j - Guide rapide

Neo4j est la première base de données graphique open source au monde développée à l'aide de la technologie Java. Il est hautement évolutif et sans schéma (NoSQL).

Qu'est-ce qu'une base de données de graphes?

Un graphique est une représentation picturale d'un ensemble d'objets où certaines paires d'objets sont reliées par des liens. Il est composé de deux éléments: les nœuds (sommets) et les relations (arêtes).

La base de données Graph est une base de données utilisée pour modéliser les données sous forme de graphique. Ici, les nœuds d'un graphe représentent les entités tandis que les relations décrivent l'association de ces nœuds.

Bases de données graphiques populaires

Neo4j est une base de données graphique populaire. Les autres bases de données graphiques sont Oracle NoSQL Database, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph et AllegroGraph.

Pourquoi des bases de données graphiques?

De nos jours, la plupart des données existent sous la forme de relations entre différents objets et le plus souvent, la relation entre les données est plus précieuse que les données elles-mêmes.

Les bases de données relationnelles stockent des données hautement structurées qui ont plusieurs enregistrements stockant le même type de données afin qu'elles puissent être utilisées pour stocker des données structurées et, elles ne stockent pas les relations entre les données.

Contrairement aux autres bases de données, les bases de données graphiques stockent les relations et les connexions en tant qu'entités de premier ordre.

Le modèle de données pour les bases de données de graphes est plus simple que les autres bases de données et peut être utilisé avec les systèmes OLTP. Ils fournissent des fonctionnalités telles que l'intégrité transactionnelle et la disponibilité opérationnelle.

Base de données SGBDR Vs Graph

Voici le tableau qui compare les bases de données relationnelles et les bases de données Graph.

Sr.Non SGBDR Base de données graphique
1 les tables Graphiques
2 Lignes Nœuds
3 Colonnes et données Propriétés et ses valeurs
4 Contraintes Des relations
5 Rejoint Traversée

Avantages de Neo4j

Voici les avantages de Neo4j.

  • Flexible data model - Neo4j fournit un modèle de données simple et puissant, flexible, qui peut être facilement modifié en fonction des applications et des industries.

  • Real-time insights - Neo4j fournit des résultats basés sur des données en temps réel.

  • High availability - Neo4j est hautement disponible pour les applications en temps réel des grandes entreprises avec des garanties transactionnelles.

  • Connected and semi structures data - En utilisant Neo4j, vous pouvez facilement représenter des données connectées et semi-structurées.

  • Easy retrieval - En utilisant Neo4j, vous pouvez non seulement représenter mais aussi facilement récupérer (parcourir / naviguer) les données connectées plus rapidement par rapport à d'autres bases de données.

  • Cypher query language- Neo4j fournit un langage de requête déclaratif pour représenter le graphe visuellement, en utilisant une syntaxe ascii-art. Les commandes de ce langage sont dans un format lisible par l'homme et très faciles à apprendre.

  • No joins - En utilisant Neo4j, il ne nécessite PAS de jointures complexes pour récupérer les données connectées / liées car il est très facile de récupérer son nœud adjacent ou les détails de sa relation sans jointures ni index.

Caractéristiques de Neo4j

Voici les caractéristiques notables de Neo4j -

  • Data model (flexible schema)- Neo4j suit un modèle de données nommé modèle de graphe de propriétés natif. Ici, le graphe contient des nœuds (entités) et ces nœuds sont connectés les uns aux autres (représentés par des relations). Les nœuds et les relations stockent les données dans des paires clé-valeur appelées propriétés.

    Dans Neo4j, il n'est pas nécessaire de suivre un schéma fixe. Vous pouvez ajouter ou supprimer des propriétés selon les besoins. Il fournit également des contraintes de schéma.

  • ACID properties - Neo4j prend en charge les règles ACID (atomicité, cohérence, isolement et durabilité) complètes.

  • Scalability and reliability- Vous pouvez mettre à l'échelle la base de données en augmentant le nombre de lectures / écritures et le volume sans affecter la vitesse de traitement des requêtes et l'intégrité des données. Neo4j prend également en chargereplication pour la sécurité et la fiabilité des données.

  • Cypher Query Language- Neo4j fournit un puissant langage de requête déclaratif appelé Cypher. Il utilise l'art ASCII pour représenter des graphiques. Cypher est facile à apprendre et peut être utilisé pour créer et récupérer des relations entre des données sans utiliser les requêtes complexes comme les jointures.

  • Built-in web application - Neo4j fournit un intégré Neo4j Browserapplication Web. Grâce à cela, vous pouvez créer et interroger vos données graphiques.

  • Drivers - Neo4j peut fonctionner avec -

    • API REST pour travailler avec des langages de programmation tels que Java, Spring, Scala, etc.

    • Java Script pour fonctionner avec les frameworks UI MVC tels que Node JS.

    • Il prend en charge deux types d'API Java: l'API Cypher et l'API Java native pour développer des applications Java. En plus de cela, vous pouvez également travailler avec d'autres bases de données telles que MongoDB, Cassandra, etc.

  • Indexing - Neo4j prend en charge les index en utilisant Apache Lucence.

Modèle de données de graphe de propriétés Neo4j

Neo4j Graph Database suit le Property Graph Model pour stocker et gérer ses données.

Voici les principales caractéristiques du modèle de graphe de propriété -

  • Le modèle représente les données dans les nœuds, les relations et les propriétés

  • Les propriétés sont des paires clé-valeur

  • Les nœuds sont représentés à l'aide d'un cercle et les relations sont représentées à l'aide des touches fléchées

  • Les relations ont des directions: unidirectionnelles et bidirectionnelles

  • Chaque relation contient "Start Node" ou "From Node" et "To Node" ou "End Node"

  • Les nœuds et les relations contiennent des propriétés

  • Les relations connectent les nœuds

Dans le modèle de données Property Graph, les relations doivent être directionnelles. Si nous essayons de créer des relations sans direction, cela lancera un message d'erreur.

Dans Neo4j aussi, les relations doivent être directionnelles. Si nous essayons de créer des relations sans direction, alors Neo4j lancera un message d'erreur disant que "les relations devraient être directionnelles".

La base de données Neo4j Graph stocke toutes ses données dans des nœuds et des relations. Nous n'avons pas besoin de base de données RRBMS supplémentaire ni de base de données SQL pour stocker les données de la base de données Neo4j. Il stocke ses données en termes de graphiques dans son format natif.

Neo4j utilise Native GPE (Graph Processing Engine) pour travailler avec son format de stockage de graphique natif.

Les principaux éléments constitutifs de Graph DB Data Model sont:

  • Nodes
  • Relationships
  • Properties

Voici un exemple simple de graphique de propriété.

Ici, nous avons représenté les nœuds à l'aide de cercles. Les relations sont représentées à l'aide de flèches. Les relations sont directionnelles. Nous pouvons représenter les données de Node en termes de propriétés (paires clé-valeur). Dans cet exemple, nous avons représenté la propriété Id de chaque nœud dans le cercle du nœud.

Dans ce chapitre, nous verrons comment installer Neo4j sur votre système en utilisant un fichier exe.

Configuration du serveur de base de données Neo4j avec le fichier exe Windows

Suivez les étapes ci-dessous pour télécharger Neo4j dans votre système.

Step 1 - Visitez le site officiel de Neo4j en utilisant https://neo4j.com/. En cliquant, ce lien vous mènera à la page d'accueil du site neo4j.

Step 2- Comme souligné dans la capture d'écran ci-dessus, cette page a un bouton de téléchargement en haut à droite. Cliquez dessus.

Step 3- Cela vous redirigera vers la page de téléchargement, où vous pourrez télécharger l'édition communautaire et l'édition entreprise de Neo4j. Téléchargez l'édition communautaire du logiciel en cliquant sur le bouton correspondant.

Step 4- Cela vous mènera à la page où vous pouvez télécharger la version communautaire du logiciel Neo4j compatible avec différents systèmes d'exploitation. Téléchargez le fichier correspondant au système d'exploitation souhaité.

Cela téléchargera un fichier nommé neo4j-community_windows-x64_3_1_1.exe à votre système comme indiqué dans la capture d'écran suivante.

Step 5 - Double-cliquez sur le fichier exe pour installer Neo4j Server.

Step 6- Acceptez le contrat de licence et procédez à l'installation. Une fois le processus terminé, vous pouvez observer que Neo4j est installé sur votre système.

Démarrage du serveur

Step 1 - Cliquez sur le menu Démarrer de Windows et démarrez le serveur Neo4j en cliquant sur le raccourci du menu Démarrer de Neo4j.

Step 2- En cliquant sur le raccourci, vous obtiendrez une fenêtre pour l'édition Neo4j Community. Par défaut, il sélectionne c: \ Users \ [nom d'utilisateur] \ Documents \ Neo4j \ default.graphdb. Si vous le souhaitez, vous pouvez modifier votre chemin vers un autre répertoire.

Step 3 - Cliquez sur le bouton "Démarrer" pour démarrer le serveur Neo4j.

Une fois le serveur démarré, vous pouvez observer que le répertoire de la base de données est rempli comme indiqué dans la capture d'écran suivante.

Travailler avec Neo4j

Comme discuté dans les chapitres précédents, neo4j fournit une application de navigation intégrée pour fonctionner avec Neo4j. Vous pouvez accéder à Neo4j en utilisant l'URLhttp://localhost:7474/

La base de données Neo4j Graph comprend les blocs de construction suivants -

  • Nodes
  • Properties
  • Relationships
  • Labels
  • Navigateur de données

Nœud

Node est une unité fondamentale d'un graphe. Il contient des propriétés avec des paires clé-valeur, comme illustré dans l'image suivante.

Ici, Node Name = "Employee" et il contient un ensemble de propriétés sous forme de paires clé-valeur.

Propriétés

La propriété est une paire clé-valeur pour décrire les nœuds et les relations du graphique.

Key = Value

Où Key est une chaîne et Value peut être représentée à l'aide de n'importe quel type de données Neo4j.

Des relations

Les relations sont un autre élément constitutif majeur d'une base de données graphique. Il connecte deux nœuds comme illustré dans la figure suivante.

Ici, Emp et Dept sont deux nœuds différents. "WORKS_FOR" est une relation entre les nœuds Emp et Dept.

Comme il l'indique, la flèche de Emp à Dept, cette relation décrit -

Emp WORKS_FOR Dept

Chaque relation contient un nœud de début et un nœud de fin.

Ici, "Emp" est un nœud de départ et "Dept" est un nœud de fin.

Comme cette flèche de relation représente une relation entre le nœud "Emp" et le nœud "Dept", cette relation est connue sous le nom de "Relation entrante" vers le nœud "Dept" et de "Relation sortante" avec le nœud "Emp".

Comme les nœuds, les relations peuvent également contenir des propriétés sous forme de paires clé-valeur.

Ici, la relation "WORKS_FOR" a une propriété en tant que paire clé-valeur.

Id = 123

Il représente un identifiant de cette relation.

Étiquettes

L'étiquette associe un nom commun à un ensemble de nœuds ou de relations. Un nœud ou une relation peut contenir une ou plusieurs étiquettes. Nous pouvons créer de nouvelles étiquettes pour les nœuds ou les relations existants. Nous pouvons supprimer les étiquettes existantes des nœuds ou des relations existants.

A partir du diagramme précédent, nous pouvons observer qu'il y a deux nœuds.

Le nœud du côté gauche a une étiquette: "Emp" et le nœud du côté droit a une étiquette: "Dept".

La relation entre ces deux nœuds a également une étiquette: "WORKS_FOR".

Note - Neo4j stocke les données dans les propriétés des nœuds ou des relations.

Navigateur de données Neo4j

Une fois que nous avons installé Neo4j, nous pouvons accéder au navigateur de données Neo4j en utilisant l'URL suivante

http://localhost:7474/browser/

Le navigateur de données Neo4j est utilisé pour exécuter des commandes CQL et afficher la sortie.

Ici, nous devons exécuter toutes les commandes CQL à l'invite du dollar: "$"

Tapez les commandes après le symbole du dollar et cliquez sur le bouton "Exécuter" pour exécuter vos commandes.

Il interagit avec le serveur de base de données Neo4j, récupère et affiche les résultats juste en dessous de l'invite du dollar.

Utilisez le bouton "Vue VI" pour afficher les résultats sous forme de diagrammes. Le diagramme ci-dessus montre les résultats au format "UI View".

Utilisez le bouton "Vue Grille" pour afficher les résultats en Vue Grille. Le diagramme suivant montre les mêmes résultats au format «Grid View».

Lorsque nous utilisons "Grid View" pour afficher les résultats de notre requête, nous pouvons les exporter dans un fichier dans deux formats différents.

CSV

Cliquez sur le bouton "Exporter CSV" pour exporter les résultats au format de fichier csv.

JSON

Cliquez sur le bouton "Exporter JSON" pour exporter les résultats au format de fichier JSON.

Cependant, si nous utilisons "UI View" pour voir nos résultats de requête, nous pouvons les exporter dans un fichier dans un seul format: JSON

CQL signifie Cypher Query Language. Comme Oracle Database a le langage de requête SQL, Neo4j a CQL comme langage de requête.

Neo4j CQL

  • Est un langage de requête pour Neo4j Graph Database.
  • Est un langage de correspondance de modèle déclaratif.
  • Suit la syntaxe SQL.
  • La syntaxe est très simple et dans un format lisible par l'homme.

Comme Oracle SQL

  • Neo4j CQL a des commandes pour effectuer des opérations de base de données.

  • Neo4j CQL supporte de nombreuses clauses telles que WHERE, ORDER BY, etc., pour écrire facilement des requêtes très complexes.

  • Neo4j CQL prend en charge certaines fonctions telles que String, Agrégation. En plus d'eux, il prend également en charge certaines fonctions relationnelles.

Clauses CQL Neo4j

Voici les clauses de lecture de Neo4j Cypher Query Language -

Sr.Non Lire les clauses Usage
1 RENCONTRE Cette clause est utilisée pour rechercher les données avec un modèle spécifié.
2 MATCH OPTIONNEL C'est la même chose que match, la seule différence étant qu'il peut utiliser des valeurs nulles en cas de parties manquantes du modèle.
3 Cet id de clause est utilisé pour ajouter du contenu aux requêtes CQL.
4 DÉBUT Cette clause est utilisée pour trouver les points de départ à travers les index hérités.
5 CHARGER CSV Cette clause est utilisée pour importer des données à partir de fichiers CSV.

Voici les clauses d'écriture de Neo4j Cypher Query Language -

Sr.Non Clause d'écriture Usage
1 CRÉER Cette clause est utilisée pour créer des nœuds, des relations et des propriétés.
2 FUSIONNER Cette clause vérifie si le modèle spécifié existe dans le graphique. Sinon, il crée le motif.
3 ENSEMBLE Cette clause est utilisée pour mettre à jour les étiquettes sur les nœuds, les propriétés sur les nœuds et les relations.
4 EFFACER Cette clause est utilisée pour supprimer des nœuds et des relations ou des chemins, etc. du graphe.
5 RETIRER Cette clause est utilisée pour supprimer les propriétés et les éléments des nœuds et des relations.
6 POUR CHAQUE Cette classe est utilisée pour mettre à jour les données dans une liste.
sept CRÉER UNIQUE En utilisant les clauses CREATE et MATCH, vous pouvez obtenir un modèle unique en faisant correspondre le modèle existant et en créant le modèle manquant.
8 Importer des fichiers CSV avec Cypher En utilisant Load CSV, vous pouvez importer des données à partir de fichiers .csv.

Voici les clauses générales de Neo4j Cypher Query Language -

Sr.Non Clauses générales Usage
1 REVENIR Cette clause est utilisée pour définir ce qu'il faut inclure dans le jeu de résultats de la requête.
2 COMMANDÉ PAR Cette clause est utilisée pour organiser la sortie d'une requête dans l'ordre. Il est utilisé avec les clausesRETURN ou WITH.
3 LIMITE Cette clause est utilisée pour limiter les lignes du résultat à une valeur spécifique.
4 SAUTER Cette clause est utilisée pour définir à partir de quelle ligne commencer à inclure les lignes dans la sortie.
5 AVEC Cette clause est utilisée pour enchaîner les parties de la requête.
6 SE DÉTENDRE Cette clause est utilisée pour développer une liste en une séquence de lignes.
sept SYNDICAT Cette clause est utilisée pour combiner le résultat de plusieurs requêtes.
8 APPEL Cette clause est utilisée pour appeler une procédure déployée dans la base de données.

Fonctions CQL Neo4j

Voici les fonctions CQL Neo4j fréquemment utilisées -

Sr.Non Fonctions CQL Usage
1 Chaîne Ils sont utilisés pour travailler avec des littéraux String.
2 Agrégation Ils sont utilisés pour effectuer certaines opérations d'agrégation sur les résultats de requête CQL.
3 Relation Ils sont utilisés pour obtenir des détails sur les relations telles que startnode, endnode, etc.

Nous discuterons en détail de toutes les commandes, clauses et fonctions de Neo4j CQL, syntaxe, utilisation et exemples dans les chapitres suivants.

Types de données Neo4j CQL

Ces types de données sont similaires au langage Java. Ils sont utilisés pour définir les propriétés d'un nœud ou d'une relation.

Neo4j CQL prend en charge les types de données suivants -

Sr.Non Type de données CQL Usage
1 Booléen Il est utilisé pour représenter des littéraux booléens: vrai, faux.
2 octet Il est utilisé pour représenter des entiers de 8 bits.
3 court Il est utilisé pour représenter des entiers 16 bits.
4 int Il est utilisé pour représenter des entiers 32 bits.
5 longue Il est utilisé pour représenter des entiers 64 bits.
6 flotte Il est utilisé pour représenter des nombres à virgule flottante 32 bits.
sept double Il est utilisé pour représenter des nombres à virgule flottante 64 bits.
8 carboniser Il est utilisé pour représenter des caractères 16 bits.
9 Chaîne Il est utilisé pour représenter les chaînes.

Opérateurs CQL

Voici la liste des opérateurs pris en charge par le langage Neo4j Cypher Query.

Sr.Non Type Les opérateurs
1 Mathématique +, -, *, /,%, ^
2 Comparaison +, <>, <,>, <=,> =
3 Booléen ET, OU, XOR, PAS
4 Chaîne +
5 liste +, IN, [X], [X… ..Y]
6 Expression régulière = -
sept Correspondance de chaîne COMMENCE PAR, SE TERMINE AVEC, CONTRAINTES

Opérateurs booléens dans Neo4j CQL

Neo4j prend en charge les opérateurs booléens suivants à utiliser dans la clause Neo4j CQL WHERE pour prendre en charge plusieurs conditions.

Sr.Non Opérateurs booléens La description
1 ET C'est un mot clé CQL Neo4j pour prendre en charge l'opération AND. C'est comme l'opérateur SQL AND.
2 OU C'est un mot-clé CQL Neo4j pour prendre en charge l'opération OR. C'est comme l'opérateur SQL AND.
3 NE PAS C'est un mot-clé CQL Neo4j pour prendre en charge l'opération NOT. C'est comme l'opérateur SQL AND.
4 XOR C'est un mot clé CQL Neo4j pour prendre en charge le fonctionnement XOR. C'est comme l'opérateur SQL AND.

Opérateurs de comparaison dans Neo4j CQL

Neo4j prend en charge les opérateurs de comparaison suivants à utiliser dans la clause Neo4j CQL WHERE pour prendre en charge les conditions.

Sr.Non Opérateurs booléens La description
1 = C'est un opérateur Neo4j CQL "Equal To".
2 <> C'est un opérateur Neo4j CQL "Not Equal To".
3 < Il s'agit d'un opérateur Neo4j CQL "Less Than".
4 > Il s'agit d'un opérateur Neo4j CQL "Supérieur à".
5 <= Il s'agit d'un opérateur Neo4j CQL "Inférieur ou égal à".
6 > = Il s'agit d'un opérateur Neo4j CQL "Supérieur ou égal à".

Comme indiqué, un nœud est une donnée / un enregistrement dans une base de données de graphiques. Vous pouvez créer un nœud dans Neo4j en utilisant leCREATEclause. Ce chapitre vous apprend à -

  • Créer un seul nœud
  • Créer plusieurs nœuds
  • Créer un nœud avec une étiquette
  • Créer un nœud avec plusieurs étiquettes
  • Créer un nœud avec des propriétés
  • Retour du nœud créé

Créer un nœud unique

Vous pouvez créer un nœud dans Neo4j en spécifiant simplement le nom du nœud à créer avec la clause CREATE.

Syntaxe

Voici la syntaxe pour créer un nœud à l'aide du langage de requête de chiffrement.

CREATE (node_name);

Note - Le point-virgule (;) est facultatif.

Exemple

Voici un exemple de requête de chiffrement qui crée un nœud dans Neo4j.

CREATE (sample)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1 - Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j comme indiqué dans la capture d'écran suivante.

Step 2 - Ouvrez votre navigateur, copiez collez l'URL suivante dans votre barre d'adresse http://localhost:7474/. Cela vous donnera l'application de navigateur intégrée de Neo4j avec une invite de dollar comme indiqué dans la capture d'écran suivante.

Step 3 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vérification

Pour vérifier la création du type de nœud, exécutez la requête suivante dans l'invite dollar.

MATCH (n) RETURN n

Cette requête renvoie tous les nœuds de la base de données (nous aborderons cette requête en détail dans les chapitres suivants).

Lors de l'exécution, cette requête montre le nœud créé comme illustré dans la capture d'écran suivante.

Création de plusieurs nœuds

La clause create de Neo4j CQL est également utilisée pour créer plusieurs nœuds en même temps. Pour ce faire, vous devez transmettre les noms des nœuds à créer, séparés par une virgule.

Syntaxe

Voici la syntaxe pour créer plusieurs nœuds à l'aide de la clause CREATE.

CREATE (node1),(node2)

Exemple

Voici un exemple de requête de chiffrement qui crée plusieurs nœuds dans Neo4j.

CREATE (sample1),(sample2)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vérification

Pour vérifier la création du nœud, saisissez et exécutez la requête suivante dans l'invite dollar.

MATCH (n) RETURN n

Cette requête renvoie tous les nœuds de la base de données (nous aborderons cette requête en détail dans les chapitres suivants).

Lors de l'exécution, cette requête montre le nœud créé comme illustré dans la capture d'écran suivante.

Création d'un nœud avec une étiquette

Une étiquette dans Neo4j est utilisée pour regrouper (classer) les nœuds à l'aide d'étiquettes. Vous pouvez créer une étiquette pour un nœud dans Neo4j en utilisant la clause CREATE.

Syntaxe

Voici la syntaxe pour créer un nœud avec une étiquette à l'aide du langage de requête Cypher.

CREATE (node:label)

Exemple

Voici un exemple de requête de chiffrement qui crée un nœud avec une étiquette.

CREATE (Dhawan:player)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vérification

Pour vérifier la création du nœud, saisissez et exécutez la requête suivante dans l'invite dollar.

MATCH (n) RETURN n

Cette requête renvoie tous les nœuds de la base de données (nous aborderons cette requête en détail dans les chapitres suivants).

Lors de l'exécution, cette requête montre le nœud créé comme illustré dans la capture d'écran suivante.

Création d'un nœud avec plusieurs étiquettes

Vous pouvez également créer plusieurs étiquettes pour un seul nœud. Vous devez spécifier les étiquettes du nœud en les séparant par deux points «:».

Syntaxe

Voici la syntaxe pour créer un nœud avec plusieurs étiquettes.

CREATE (node:label1:label2:. . . . labeln)

Exemple

Voici un exemple de requête de chiffrement qui crée un nœud avec plusieurs étiquettes dans Neo4j.

CREATE (Dhawan:person:player)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vérification

Pour vérifier la création du nœud, saisissez et exécutez la requête suivante dans l'invite dollar.

MATCH (n) RETURN n

Cette requête renvoie tous les nœuds de la base de données (nous aborderons cette requête en détail dans les chapitres suivants).

Lors de l'exécution, cette requête montre le nœud créé comme illustré dans la capture d'écran suivante.

Créer un nœud avec des propriétés

Les propriétés sont les paires clé-valeur à l'aide desquelles un nœud stocke des données. Vous pouvez créer un nœud avec des propriétés à l'aide de la clause CREATE. Vous devez spécifier ces propriétés séparées par des virgules entre les accolades fleuries «{}».

Syntaxe

Voici la syntaxe pour créer un nœud avec des propriétés.

CREATE (node:label { key1: value, key2: value, . . . . . . . . .  })

Exemple

Voici un exemple de requête de chiffrement qui crée un nœud avec des propriétés.

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"})

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vérification

Pour vérifier la création du nœud, saisissez et exécutez la requête suivante dans l'invite dollar.

MATCH (n) RETURN n

Cette requête renvoie tous les nœuds de la base de données (nous aborderons cette requête en détail dans les chapitres suivants).

Lors de l'exécution, cette requête montre le nœud créé comme illustré dans la capture d'écran suivante.

Retour du nœud créé

Tout au long du chapitre, nous avons utilisé le MATCH (n) RETURN nrequête pour afficher les nœuds créés. Cette requête renvoie tous les nœuds existants dans la base de données.

Au lieu de cela, nous pouvons utiliser la clause RETURN avec CREATE pour afficher le nœud nouvellement créé.

Syntaxe

Voici la syntaxe pour renvoyer un nœud dans Neo4j.

CREATE (Node:Label{properties. . . . }) RETURN Node

Exemple

Voici un exemple de requête de chiffrement qui crée un nœud avec des propriétés et le renvoie.

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) RETURN Dhawan

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Dans Noe4j, une relation est un élément à l'aide duquel nous connectons deux nœuds d'un graphe. Ces relations ont des modèles de direction, de type et de forme de données. Ce chapitre vous apprend à -

  • Créer des relations
  • Créer une relation entre les nœuds existants
  • Créer une relation avec l'étiquette et les propriétés

Créer des relations

Nous pouvons créer une relation en utilisant la clause CREATE. Nous spécifierons la relation entre les accolades «[]» en fonction de la direction de la relation dans laquelle elle est placée entre le trait d'union «-» et la flèche «→» comme indiqué dans la syntaxe suivante.

Syntaxe

Voici la syntaxe pour créer une relation à l'aide de la clause CREATE.

CREATE (node1)-[:RelationshipType]->(node2)

Exemple

Tout d'abord, créez deux nœuds Ind et Dhawan dans la base de données, comme illustré ci-dessous.

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
CREATE (Ind:Country {name: "India"})

Maintenant, créez une relation nommée BATSMAN_OF entre ces deux nœuds comme -

CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind)

Enfin, renvoyez les deux nœuds pour voir la relation créée.

RETURN Dhawan, Ind

Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Création d'une relation entre les nœuds existants

Vous pouvez également créer une relation entre les nœuds existants à l'aide du MATCH clause.

Syntaxe

Voici la syntaxe pour créer une relation à l'aide de la clause MATCH.

MATCH (a:LabeofNode1), (b:LabeofNode2) 
   WHERE a.name = "nameofnode1" AND b.name = " nameofnode2" 
CREATE (a)-[: Relation]->(b) 
RETURN a,b

Exemple

Voici un exemple de requête de chiffrement qui crée une relation à l'aide de la clause match.

MATCH (a:player), (b:Country) WHERE a.name = "Shikar Dhawan" AND b.name = "India" 
CREATE (a)-[r: BATSMAN_OF]->(b) 
RETURN a,b

Pour exécuter la requête ci-dessus, effectuez les étapes suivantes.

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Création d'une relation avec l'étiquette et les propriétés

Vous pouvez créer une relation avec l'étiquette et les propriétés à l'aide de la clause CREATE.

Syntaxe

Voici la syntaxe pour créer une relation avec l'étiquette et les propriétés à l'aide de la clause CREATE.

CREATE (node1)-[label:Rel_Type {key1:value1, key2:value2, . . . n}]-> (node2)

Exemple

Voici un exemple de requête de chiffrement qui crée une relation avec l'étiquette et les propriétés.

MATCH (a:player), (b:Country) WHERE a.name = "Shikar Dhawan" AND b.name = "India" 
CREATE (a)-[r:BATSMAN_OF {Matches:5, Avg:90.75}]->(b)  
RETURN a,b

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Créer un chemin complet

Dans Neo4j, un chemin est formé en utilisant des relations continues. Un chemin peut être créé à l'aide de la clause create.

Syntaxe

Voici la syntaxe pour créer un chemin dans Neo4j à l'aide de la clause CREATE.

CREATE p = (Node1 {properties})-[:Relationship_Type]->
   (Node2 {properties})[:Relationship_Type]->(Node3 {properties}) 
RETURN p

Exemple

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

La commande MERGE est une combinaison de la commande CREATE et de la commande MATCH.

La commande Neo4j CQL MERGE recherche un motif donné dans le graphe. S'il existe, il renvoie les résultats.

S'il n'existe PAS dans le graphique, il crée un nouveau nœud / relation et renvoie les résultats.

Dans ce chapitre, vous allez apprendre à -

  • Fusionner un nœud avec une étiquette
  • Fusionner un nœud avec des propriétés
  • OnCreate et OnMatch
  • Fusionner une relation

Syntaxe

Voici la syntaxe de la commande MERGE.

MERGE (node: label {properties . . . . . . . })

Avant de passer aux exemples de cette section, créez deux nœuds dans la base de données avec les étiquettes Dhawan et Ind. Créez une relation de type «BATSMAN_OF» de Dhawan à Ind comme illustré ci-dessous.

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
CREATE (Ind:Country {name: "India"}) 
CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind)

Fusion d'un nœud avec une étiquette

Vous pouvez fusionner un nœud dans la base de données en fonction de l'étiquette à l'aide de la clause MERGE. Si vous essayez de fusionner un nœud en fonction de l'étiquette, Neo4j vérifie s'il existe un nœud avec l'étiquette donnée. Sinon, le nœud actuel sera créé.

Syntaxe

Voici la syntaxe pour fusionner un nœud en fonction d'une étiquette.

MERGE (node:label) RETURN node

Exemple 1

Voici un exemple de requête de chiffrement qui fusionne un nœud dans Neo4j (basé sur l'étiquette). Lorsque vous exécutez cette requête, Neo4j vérifie s'il existe un nœud avec l'étiquetteplayer. Sinon, il crée un nœud nommé «Jadeja» et le renvoie.

S'il existe un nœud avec l'étiquette donnée, Neo4j les renvoie tous.

MERGE (Jadeja:player) RETURN Jadeja

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Puisque vous avez déjà créé un nœud nommé «Dhawan» avec l'étiquette «player» dans la base de données, Neo4j le renvoie comme illustré dans la capture d'écran suivante.

Exemple 2

Maintenant, essayez de fusionner un nœud nommé «CT2013» avec une étiquette nommée Tournament. Puisqu'il n'y a pas de nœuds avec cette étiquette, Neo4j crée un nœud avec le nom donné et le renvoie.

MERGE (CT2013:Tournament{name: "ICC Champions Trophy 2013"}) 
RETURN CT2013, labels(CT2013)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Comme discuté, car il n'y a pas de nœud avec l'étiquette donnée (Tournoi). Neo4j crée et renvoie le nœud spécifié comme indiqué dans la capture d'écran suivante.

Fusion d'un nœud avec des propriétés

Vous pouvez également fusionner un nœud avec un ensemble de propriétés. Si vous le faites, Neo4j recherche une correspondance égale pour le nœud spécifié, y compris les propriétés. S'il n'en trouve pas, il en crée un.

Syntaxe

Voici la syntaxe pour fusionner un nœud à l'aide des propriétés.

MERGE (node:label {key1:value, key2:value, key3:value . . . . . . . . })

Exemple

Voici un exemple de requête de chiffrement pour fusionner un nœud à l'aide de propriétés. Cette requête tente de fusionner le nœud nommé «jadeja» en utilisant les propriétés et l'étiquette. Puisqu'il n'y a pas de tel nœud avec l'étiquette et les propriétés exactes, Neo4j en crée un.

MERGE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 
RETURN Jadeja

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Comme indiqué, puisqu'il n'y a aucun nœud avec l'étiquette et les propriétés spécifiées, il en crée un, comme illustré dans la capture d'écran suivante.

OnCreate et OnMatch

Chaque fois que nous exécutons une requête de fusion, un nœud est mis en correspondance ou créé. En utilisant on create et on match, vous pouvez définir des propriétés pour indiquer si le nœud est créé ou mis en correspondance.

Syntaxe

Voici la syntaxe de OnCreate et OnMatch clauses.

MERGE (node:label {properties . . . . . . . . . . .}) 
ON CREATE SET property.isCreated ="true" 
ON MATCH SET property.isFound ="true"

Exemple

Voici un exemple de requête de chiffrement qui montre l'utilisation de OnCreate et OnMatchclauses dans Neo4j. Si le nœud spécifié existe déjà dans la base de données, le nœud sera mis en correspondance et la propriété avec la paire clé-valeur isFound = "true" sera créée dans le nœud.

Si le nœud spécifié n'existe pas dans la base de données, alors le nœud sera créé et une propriété avec une paire clé-valeur isCreated = "true" sera créée.

MERGE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 
ON CREATE SET Jadeja.isCreated = "true" 
ON MATCH SET Jadeja.isFound = "true" 
RETURN Jadeja

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Comme indiqué, comme il n'y a pas de nœud avec les détails spécifiés, Neo4j l'a créé avec la propriétéisFound comme indiqué dans la capture d'écran suivante.

Fusionner une relation

Tout comme les nœuds, vous pouvez également fusionner les relations à l'aide de la clause MERGE.

Exemple

Voici un exemple de requête de chiffrement qui fusionne une relation à l'aide de la clause MATCH dans Neo4j. Cette requête tente de fusionner une relation nomméeWINNERS_OF entre les nœuds «ind» (label: Pays & nom: Inde) et ICC13 (label: Tournoi & nom: ICC Champions Trophy 2013).

Puisqu'une telle relation n'existe pas, Neo4j en crée une.

MATCH (a:Country), (b:Tournament) 
   WHERE a.name = "India" AND b.name = "ICC Champions Trophy 2013" 
   MERGE (a)-[r:WINNERS_OF]->(b) 
RETURN a, b

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Étant donné que la relation spécifiée n'existe pas dans la base de données, Neo4j en crée une comme illustré dans la capture d'écran suivante.

De la même manière, vous pouvez également fusionner plusieurs relations et relations non dirigées.

À l'aide de la clause Set, vous pouvez ajouter de nouvelles propriétés à un nœud ou une relation existant, et également ajouter ou mettre à jour les valeurs de propriétés existantes.

Dans ce chapitre, nous allons discuter de la façon de -

  • Définir une propriété
  • Supprimer une propriété
  • Définir plusieurs propriétés
  • Définir une étiquette sur un nœud
  • Définir plusieurs étiquettes sur un nœud

Définition d'une propriété

À l'aide de la clause SET, vous pouvez créer une nouvelle propriété dans un nœud.

Syntaxe

Voici la syntaxe pour définir une propriété.

MATCH (node:label{properties . . . . . . . . . . . . . . }) 
SET node.property = value 
RETURN node

Exemple

Avant de continuer avec l'exemple, créez d'abord un nœud nommé Dhawan comme indiqué ci-dessous.

CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"})

Voici un exemple de requête de chiffrement pour créer une propriété nommée «highestscore» avec la valeur «187» .

MATCH (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
SET Dhawan.highestscore = 187 
RETURN Dhawan

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans le screnshot suivant.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer qu'une propriété avec une paire clé-valeur highestscore / 187 est créée dans le nœud nommé «Dhawan».

Supprimer une propriété

Vous pouvez supprimer une propriété existante en passant NULL comme valeur pour lui.

Syntaxe

Voici la syntaxe de suppression d'une propriété d'un nœud à l'aide de la clause SET.

MATCH (node:label {properties}) 
SET node.property = NULL 
RETURN node

Exemple

Avant de continuer avec l'exemple, créez d'abord un nœud «jadeja» comme illustré ci-dessous.

Create (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})

Voici un exemple de requête de chiffrement qui supprime la propriété nommée POB de ce nœud à l'aide de la clause SET comme indiqué ci-dessous.

MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 
SET Jadeja.POB = NULL 
RETURN Jadeja

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici vous pouvez observer que la variable nomméePOB A été supprimée.

Définition de plusieurs propriétés

De la même manière, vous pouvez créer plusieurs propriétés dans un nœud à l'aide de la clause Set. Pour ce faire, vous devez spécifier ces paires valeur / clé avec des virgules.

Syntaxe

Voici la syntaxe pour créer plusieurs propriétés dans un nœud à l'aide de la clause SET.

MATCH (node:label {properties}) 
SET node.property1 = value, node.property2 = value 
RETURN node

Exemple

Voici un exemple de requête de chiffrement qui crée plusieurs propriétés dans un nœud à l'aide de la clause SET dans Neo4j.

MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988})  
SET Jadeja.POB: "NavagamGhed", Jadeja.HS = "90" 
RETURN Jadeja

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que les propriétés nommées POB et HS ont été créées.

Définition d'une étiquette sur un nœud

Vous pouvez définir une étiquette sur un nœud existant à l'aide de la clause SET.

Syntaxe

Voici la syntaxe pour définir une étiquette sur un nœud existant.

MATCH (n {properties . . . . . . . }) 
SET n :label 
RETURN n

Exemple

Avant de continuer avec l'exemple, créez d'abord un nœud «Anderson» comme illustré ci-dessous.

CREATE (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"})

Voici un exemple de requête de chiffrement pour définir une étiquette sur un nœud à l'aide de la clause SET. Cette requête ajoute le label «player» au nœud Anderson et le renvoie.

MATCH (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"}) 
SET Anderson: player 
RETURN Anderson

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que l'étiquette nommée «joueur» est ajoutée au nœud.

Définition de plusieurs étiquettes sur un nœud

Vous pouvez définir plusieurs étiquettes sur un nœud existant à l'aide de la clause SET. Ici, vous devez spécifier les étiquettes en les séparant par des deux points «:».

Syntaxe

Voici la syntaxe pour définir plusieurs étiquettes sur un nœud existant à l'aide de la clause SET.

MATCH (n {properties . . . . . . . }) 
SET n :label1:label2 
RETURN n

Exemple

Avant de continuer avec l'exemple, créez d'abord un nœud nommé «Ishant» comme illustré ci-dessous.

CREATE (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})

Voici un exemple de requête de chiffrement utilisée pour créer plusieurs étiquettes sur un nœud à l'aide de la clause SET.

MATCH (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 
SET Ishant: player:person 
RETURN Ishant

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que deux étiquettes - personne et joueur - sont ajoutées au nœud nomméIshant.

Vous pouvez supprimer des nœuds et des relations d'une base de données à l'aide de la clause DELETE.

Suppression de tous les nœuds et relations

Voici la requête pour supprimer tous les nœuds et les relations dans la base de données à l'aide de la clause DELETE.

Requete

MATCH (n) DETACH DELETE n

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Cela supprimera tous les nœuds et relations de votre base de données neo4j et la rendra vide.

Suppression d'un nœud particulier

Pour supprimer un nœud particulier, vous devez spécifier les détails du nœud à la place de «n» dans la requête ci-dessus.

Syntaxe

Voici la syntaxe pour supprimer un nœud particulier de Neo4j à l'aide de la clause DELETE.

MATCH (node:label {properties . . . . . . . . . .  }) 
DETACH DELETE node

Exemple

Avant de continuer avec l'exemple, créez un nœud «Ishant» dans la base de données Neo4j comme illustré ci-dessous.

CREATE (Ishant:player {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})

Voici un exemple de requête de chiffrement qui supprime le nœud créé ci-dessus à l'aide de la clause DELETE.

MATCH (Ishant:player {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 
DETACH DELETE Ishant

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que le nœud spécifié est supprimé.

La clause REMOVE est utilisée pour supprimer les propriétés et les étiquettes des éléments du graphique (nœuds ou relations).

La principale différence entre les commandes Neo4j CQL DELETE et REMOVE est -

  • L'opération DELETE est utilisée pour supprimer les nœuds et les relations associées.
  • L'opération REMOVE est utilisée pour supprimer les étiquettes et les propriétés.

Supprimer une propriété

Vous pouvez supprimer une propriété d'un nœud à l'aide de MATCH avec la clause REMOVE.

Syntaxe

Voici la syntaxe pour supprimer une propriété d'un nœud à l'aide de la clause REMOVE.

MATCH (node:label{properties . . . . . . . }) 
REMOVE node.property 
RETURN node

Exemple

Avant de continuer avec l'exemple, créez un nœud nommé Dhoni comme indiqué ci-dessous.

CREATE (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})

Voici un exemple de requête de chiffrement pour supprimer le nœud créé ci-dessus à l'aide de la clause REMOVE.

MATCH (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
REMOVE Dhoni.POB 
RETURN Dhoni

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que le nœud nommé POB a été supprimé.

Suppression d'une étiquette d'un nœud

Comme pour la propriété, vous pouvez également supprimer une étiquette d'un nœud existant à l'aide de la clause remove.

Syntaxe

Voici la syntaxe pour supprimer une étiquette d'un nœud.

MATCH (node:label {properties . . . . . . . . . . . }) 
REMOVE node:label 
RETURN node

Exemple

Voici un exemple de requête de chiffrement pour supprimer une étiquette d'un nœud existant à l'aide de la clause remove.

MATCH (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
REMOVE Dhoni:player 
RETURN Dhoni

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que l'étiquette a été supprimée du nœud.

Suppression de plusieurs étiquettes

Vous pouvez également supprimer plusieurs étiquettes d'un nœud existant.

Syntaxe

Voici la syntaxe pour supprimer plusieurs étiquettes d'un nœud.

MATCH (node:label1:label2 {properties . . . . . . . . }) 
REMOVE node:label1:label2 
RETURN node

Exemple

Avant de continuer avec l'exemple, créez un nœud Ishant comme indiqué ci-dessous.

CREATE (Ishant:player:person {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})

Voici un exemple de requête de chiffrement pour supprimer plusieurs étiquettes d'un nœud.

MATCH (Ishant:player:person {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 
REMOVE Ishant:player:person 
RETURN Ishant

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que les étiquettes spécifiées ont été supprimées du nœud.

le FOREACH La clause est utilisée pour mettre à jour les données dans une liste, qu'il s'agisse de composants d'un chemin ou de résultat d'agrégation.

Syntaxe

Voici la syntaxe de la clause FOREACH.

MATCH p = (start node)-[*]->(end node) 
WHERE start.node = "node_name" AND end.node = "node_name" 
FOREACH (n IN nodes(p)| SET n.marked = TRUE)

Exemple

Avant de continuer avec l'exemple, créez un chemin p dans la base de données Neo4j comme indiqué ci-dessous.

CREATE p = (Dhawan {name:"Shikar Dhawan"})-[:TOPSCORRER_OF]->(Ind{name: 
   "India"})-[:WINNER_OF]->(CT2013{name: "Champions Trophy 2013"}) 
RETURN p

Voici un exemple de requête de chiffrement qui ajoute une propriété à tous les nœuds le long du chemin à l'aide de la clause FOREACH.

MATCH p = (Dhawan)-[*]->(CT2013) 
   WHERE Dhawan.name = "Shikar Dhawan" AND CT2013.name = "Champions Trophy 2013" 
FOREACH (n IN nodes(p)| SET n.marked = TRUE)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vérification

Pour vérifier la création du nœud, saisissez et exécutez la requête suivante dans l'invite dollar.

MATCH (n) RETURN n

Cette requête renvoie tous les nœuds de la base de données (nous aborderons cette requête en détail dans les chapitres suivants).

Lors de l'exécution, cette requête montre le nœud créé comme illustré dans la capture d'écran suivante.

Dans ce chapitre, nous allons découvrir la clause de correspondance et toutes les fonctions qui peuvent être exécutées à l'aide de cette clause.

Obtenir tous les nœuds à l'aide de Match

En utilisant la clause MATCH de Neo4j, vous pouvez récupérer tous les nœuds de la base de données Neo4j.

Exemple

Avant de continuer avec l'exemple, créez 3 nœuds et 2 relations comme indiqué ci-dessous.

CREATE (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
CREATE (Ind:Country {name: "India", result: "Winners"}) 
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"}) 
CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013) 

CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind)  
CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1995, POB: "Delhi"}) 
CREATE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})  

CREATE (Dhawan)-[:TOP_SCORER_OF {Runs:363}]->(Ind) 
CREATE (Jadeja)-[:HIGHEST_WICKET_TAKER_OF {Wickets:12}]->(Ind)

Voici la requête qui renvoie tous les nœuds de la base de données Neo4j.

MATCH (n) RETURN n

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Obtenir tous les nœuds sous une étiquette spécifique

En utilisant la clause match, vous pouvez obtenir tous les nœuds sous une étiquette spécifique.

Syntaxe

Voici la syntaxe pour obtenir tous les nœuds sous une étiquette spécifique.

MATCH (node:label) 
RETURN node

Exemple

Voici un exemple de requête de chiffrement, qui renvoie tous les nœuds de la base de données sous l'étiquette player.

MATCH (n:player) 
RETURN n

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Correspondance par relation

Vous pouvez récupérer des nœuds en fonction de la relation à l'aide de la clause MATCH.

Syntaxe

Voici la syntaxe de récupération des nœuds en fonction de la relation à l'aide de la clause MATCH.

MATCH (node:label)<-[: Relationship]-(n) 
RETURN n

Exemple

Voici un exemple de requête de chiffrement pour récupérer des nœuds en fonction de la relation à l'aide de la clause MATCH.

MATCH (Ind:Country {name: "India", result: "Winners"})<-[: TOP_SCORER_OF]-(n) 
RETURN n.name

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Supprimer tous les nœuds

Vous pouvez supprimer tous les nœuds à l'aide de la clause MATCH.

Requete

Voici la requête pour supprimer tous les nœuds de Neo4j.

MATCH (n) detach delete n

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

le OPTIONAL MATCH La clause est utilisée pour rechercher le modèle qui y est décrit, tout en utilisant des valeurs nulles pour les parties manquantes du modèle.

OPTIONAL MATCH est similaire à la clause match, la seule différence étant qu'elle retourne null en raison des parties manquantes du modèle.

Syntaxe

Voici la syntaxe du MATCH OPTIONNEL avec relation.

MATCH (node:label {properties. . . . . . . . . . . . . .}) 
OPTIONAL MATCH (node)-->(x) 
RETURN x

Exemple

Voici un exemple de requête de chiffrement qui tente de récupérer les relations à partir du nœud ICCT2013. Puisqu'il n'y a pas de tels nœuds, il renvoie null.

MATCH (a:Tornament {name: "ICC Champions Trophy 2013"}) 
OPTIONAL MATCH (a)-->(x) 
RETURN x

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que puisqu'il n'y a pas de correspondance pour le modèle requis, Neo4j a renvoyé null.

Comme SQL, Neo4j CQL a fourni la clause WHERE dans la commande CQL MATCH pour filtrer les résultats d'une requête MATCH.

Syntaxe

Voici la syntaxe de la clause WHERE.

MATCH (label)  
WHERE label.country = "property" 
RETURN label

Exemple

Avant de continuer avec l'exemple, créez cinq nœuds dans la base de données comme indiqué ci-dessous.

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"}
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"}
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, 
   country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
CREATE(Ind:Country {name: "India", result: "Winners"})

Voici un exemple de requête de chiffrement qui renvoie tous les joueurs (nœuds) appartenant au pays Inde en utilisant la clause WHERE.

MATCH (player)  
WHERE player.country = "India" 
RETURN player

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Clause WHERE avec conditions multiples

Vous pouvez également utiliser la clause WHERE pour vérifier plusieurs conditions.

Syntaxe

Voici la syntaxe pour utiliser la clause WHERE dans Neo4j avec plusieurs conditions.

MATCH (emp:Employee)  
WHERE emp.name = 'Abc' AND emp.name = 'Xyz' 
RETURN emp

Exemple

Voici un exemple de requête de chiffrement qui filtre les nœuds de la base de données Neo4j en utilisant deux conditions.

MATCH (player)  
WHERE player.country = "India" AND player.runs >=175 
RETURN player

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Utilisation de la relation avec la clause Where

Vous pouvez également utiliser la clause Where pour filtrer les nœuds à l'aide des relations.

Exemple

Supposons que nous ayons le graphique suivant dans la base de données.

Voici un exemple de requête de chiffrement pour récupérer le meilleur buteur de l'Inde en utilisant la clause WHERE comme indiqué ci-dessous.

MATCH (n) 
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"}) 
RETURN n

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici, vous pouvez observer que Neo4j a renvoyé le nœud, qui a la relation TOP_SCORER_OF au pays avec le nœud ayant le nom Inde.

Supposons que nous ayons créé un graphique dans la base de données avec les détails suivants.

Compter

le count() La fonction est utilisée pour compter le nombre de lignes.

Syntaxe

Voici la syntaxe de la fonction de comptage.

MATCH (n { name: 'A' })-->(x) 
RETURN n, count(*)

Exemple

Voici un exemple de requête de chiffrement qui montre l'utilisation de la count() fonction.

Match(n{name: "India", result: "Winners"})--(x)  
RETURN n, count(*)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Nombre de groupes

le COUNT La clause est également utilisée pour compter les groupes de types de relations.

Exemple

Voici un exemple de requête de chiffrement qui compte et renvoie le nombre de nœuds participant à chaque relation.

Match(n{name: "India", result: "Winners"})-[r]-(x)  
RETURN type (r), count(*)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

La clause RETURN est utilisée pour renvoyer des nœuds, des relations et des propriétés dans Neo4j. Dans ce chapitre, nous allons apprendre à -

  • Noeuds de retour
  • Renvoyer plusieurs nœuds
  • Relations de retour
  • Propriétés de retour
  • Renvoie tous les éléments
  • Renvoie une variable avec un alias de colonne

Nœuds de retour

Vous pouvez renvoyer un nœud à l'aide de la clause RETURN.

Syntaxe

Voici une syntaxe pour renvoyer les nœuds à l'aide de la clause RETURN.

Create (node:label {properties}) 
RETURN node

Exemple

Avant de continuer avec l'exemple, créez 3 nœuds et 2 relations comme indiqué ci-dessous.

Create (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
CREATE (Ind:Country {name: "India", result: "Winners"}) 
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"}) 
CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013) 
CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind)

Voici un exemple de requête de chiffrement qui crée un nœud nommé Dhoni et le renvoie.

Create (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
RETURN Dhoni

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Retour de plusieurs nœuds

Vous pouvez également renvoyer plusieurs nœuds à l'aide de la clause return.

Syntaxe

Voici la syntaxe pour renvoyer plusieurs nœuds à l'aide de la clause return.

CREATE (Ind:Country {name: "India", result: "Winners"}) 
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"}) 
RETURN Ind, CT2013

Exemple

Voici un exemple de requête de chiffrement pour renvoyer plusieurs nœuds à l'aide de la clause return.

CREATE (Ind:Country {name: "India", result: "Winners"}) 
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"}) 
RETURN Ind, CT2013

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant. Ici vous pouvez observer que Neo4j a renvoyé 2 nœuds.

Relations de retour

Vous pouvez également renvoyer des relations à l'aide de la clause Return.

Syntaxe

Voici la syntaxe pour renvoyer les relations à l'aide de la clause RETURN.

CREATE (node1)-[Relationship:Relationship_type]->(node2) 
RETURN Relationship

Exemple

Voici un exemple de requête de chiffrement qui crée deux relations et les renvoie.

CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013) 
CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind) 
RETURN r1, r2

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Propriétés de retour

Vous pouvez également renvoyer des propriétés à l'aide de la clause RETURN.

Syntaxe

Voici une syntaxe pour renvoyer des propriétés à l'aide de la clause RETURN.

Match (node:label {properties . . . . . . . . . . }) 
Return node.property

Exemple

Voici un exemple de requête de chiffrement pour renvoyer les propriétés d'un nœud.

Match (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
Return Dhoni.name, Dhoni.POB

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Retour de tous les éléments

Vous pouvez renvoyer tous les éléments de la base de données Neo4j à l'aide de la clause RETURN.

Exemple

Voici un exemple de requête de chiffrement pour renvoyer tous les éléments de la base de données.

Match p = (n {name: "India", result: "Winners"})-[r]-(x)  
RETURN *

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Renvoyer une variable avec un alias de colonne

Vous pouvez renvoyer une colonne particulière avec un alias en utilisant la clause RETURN dans Neo4j.

Exemple

Voici un exemple de requête de chiffrement qui renvoie la colonne POB comme lieu de naissance.

Match (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
Return Dhoni.POB as Place Of Birth

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vous pouvez organiser les données de résultat dans l'ordre à l'aide de la clause ORDER BY.

Syntaxe

Voici la syntaxe de la clause ORDER BY.

MATCH (n)  
RETURN n.property1, n.property2 . . . . . . . .  
ORDER BY n.property

Exemple

Avant de continuer avec l'exemple, créez 5 nœuds dans la base de données Neo4j comme indiqué ci-dessous.

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})

Voici un exemple de requête de chiffrement qui renvoie les nœuds créés ci-dessus dans l'ordre des points marqués par le joueur à l'aide de la clause ORDERBY.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Ordre des nœuds par plusieurs propriétés

Vous pouvez organiser les nœuds en fonction de plusieurs propriétés en utilisant ORDEYBY clause.

Syntaxe

Voici la syntaxe pour organiser les nœuds par plusieurs propriétés à l'aide de la clause ORDERBY.

MATCH (n) 
RETURN n 
ORDER BY n.age, n.name

Exemple

Voici un exemple de requête de chiffrement qui organise les nœuds créés plus tôt dans ce chapitre en fonction des propriétés - exécutions et pays.

MATCH (n) 
RETURN n.name, n.runs, n.country 
ORDER BY n.runs, n.country

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Classement des nœuds par ordre décroissant

Vous pouvez organiser les nœuds dans une base de données dans un ordre décroissant en utilisant le ORDERBY clause.

Syntaxe

Voici la syntaxe pour organiser les nœuds dans une base de données.

MATCH (n) 
RETURN n 
ORDER BY n.name DESC

Exemple

Voici un exemple de requête de chiffrement qui organise les nœuds dans une base de données dans un ordre décroissant à l'aide de la clause ORDERBY.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs DESC

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

le limit La clause est utilisée pour limiter le nombre de lignes dans la sortie.

Syntaxe

Voici la syntaxe de la clause LIMIT.

MATCH (n) 
RETURN n 
ORDER BY n.name 
LIMIT 3

Exemple

Avant de continuer avec l'exemple, créez 5 nœuds dans la base de données Neo4j comme indiqué ci-dessous.

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})

Voici un exemple de requête de chiffrement qui renvoie les nœuds créés ci-dessus dans un ordre décroissant et limite les enregistrements du résultat à 3.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs DESC 
LIMIT 3

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Limiter avec expression

Vous pouvez également utiliser la clause LIMIT avec expression.

Exemple

Voici un exemple de requête de chiffrement qui limite les enregistrements à l'aide d'une expression.

MATCH (n) 
RETURN n.name, n.runs 
ORDER BY n.runs DESC 
LIMIT toInt(3 * rand())+ 1

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

La clause SKIP est utilisée pour définir à partir de quelle ligne commencer en incluant les lignes dans la sortie.

Exemple

Avant de continuer avec l'exemple, créez 5 nœuds comme indiqué ci-dessous.

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})

Voici un exemple de requête de chiffrement qui renvoie tous les nœuds de la base de données en ignorant les 3 premiers nœuds.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs DESC 
SKIP 3

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Ignorer l'utilisation de l'expression

Vous pouvez ignorer les enregistrements d'un résultat à l'aide d'une expression.

Exemple

Voici un exemple de requête de chiffrement qui utilise la clause SKIP avec une expression.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs DESC 
SKIP toInt (2*rand())+ 1

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vous pouvez enchaîner les arts de la requête à l'aide de la clause WITH.

Syntaxe

Voici la syntaxe de la clause WITH.

MATCH (n) 
WITH n 
ORDER BY n.property 
RETURN collect(n.property)

Exemple

Voici un exemple de requête de chiffrement qui illustre l'utilisation de la clause WITH.

MATCH (n) 
WITH n 
ORDER BY n.name DESC LIMIT 3 
RETURN collect(n.name)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

La clause de déroulement est utilisée pour dérouler une liste en une séquence de lignes.

Exemple

Voici un exemple de requête de chiffrement qui déroule une liste.

UNWIND [a, b, c, d] AS x 
RETURN x

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Comme SQL, Neo4J CQL a fourni un ensemble de fonctions String pour les utiliser dans les requêtes CQL pour obtenir les résultats requis.

Ici, nous allons discuter de certaines des fonctions importantes et fréquemment utilisées.

Liste des fonctions de chaîne

Voici la liste des fonctions String importantes dans Neo4j.

Sr.Non Description de la fonction
1 PLUS HAUT

Il est utilisé pour changer toutes les lettres en majuscules.

2 INFÉRIEUR

Il est utilisé pour changer toutes les lettres en lettres minuscules.

3 SUBSTRING

Il est utilisé pour obtenir une sous-chaîne d'une chaîne donnée.

4 Replace

Il est utilisé pour remplacer une sous-chaîne par une sous-chaîne donnée d'une chaîne.

Comme SQL, Neo4j CQL a fourni des fonctions d'agrégation à utiliser dans la clause RETURN. Elle est similaire à la clause GROUP BY dans SQL.

Nous pouvons utiliser cette commande RETURN + Aggregation Functions dans MATCH pour travailler sur un groupe de nœuds et renvoyer une valeur agrégée.

Liste des fonctions d'agrégation

Voici la liste des fonctions d'agrégation dans Neo4j.

Sr.Non Description de la fonction
1 COMPTER

Il renvoie le nombre de lignes renvoyées par la commande MATCH.

2 MAX

Il renvoie la valeur maximale d'un ensemble de lignes renvoyées par la commande MATCH.

3 MIN

Il renvoie la valeur minimale d'un ensemble de lignes renvoyées par la commande MATCH.

4 SOMME

Il renvoie la valeur de somme de toutes les lignes renvoyées par la commande MATCH.

5 AVG

Il renvoie la valeur moyenne de toutes les lignes renvoyées par la commande MATCH.

Dans les applications en temps réel, nous devons effectuer une sauvegarde de notre base de données d'applications régulièrement, afin de pouvoir restaurer une condition de fonctionnement à tout moment de défaillance.

Cette règle s'applique aux bases de données SGBDR et NoSQL.

Dans cette section, nous allons discuter de deux tâches DBA importantes.

  • Comment sauvegarder une base de données Neo4j.
  • Comment restaurer la base de données Neo4j sur une sauvegarde spécifique.

Note- Ces étapes s'appliquent uniquement au système d'exploitation Windows. Nous devrions utiliser des types de commandes similaires pour effectuer les mêmes étapes dans d'autres systèmes d'exploitation.

Sauvegarde de la base de données Neo4j

Step 1 - Cliquez sur "Communauté Neo4j" en utilisant le chemin suivant -

Bouton "Démarrer" de Windows → "Tous les programmes" → "Communauté Neo4j" → "Communauté Neo4j"

Par défaut, il sélectionne c:\Users\[username]\Documents\Neo4j\default.graphdb. Cependant, si nous le souhaitons, nous pouvons changer le chemin vers un répertoire différent.

Step 2 - Ici, nous avons changé notre dossier de base de données Neo4j.

C: \ Ne04j2.0db

Step 3 - Cliquez sur le bouton "Démarrer".

Une fois le serveur démarré, nous pouvons observer que nos fichiers de base de données Neo4j sont générés dans un répertoire spécifié.

Avant de faire une sauvegarde de base de données, la première chose à faire est d'arrêter le serveur de base de données Neo4j.

Step 4 - Cliquez sur le bouton "Arrêter" pour arrêter le serveur.

Les fichiers de la base de données Neo4j sont disponibles sur C: \ Ne04j2.0db

Step 5 - Ouvrez l'invite de commande.

Step 6 - Créez un dossier "Neo4jDbBackup-01" dans C: \ Neo4j (cela peut être n'importe quel emplacement dans votre système de fichiers).

mkdir C:\Neo4j\Neo4jDbBackup-01

Il crée un nouveau dossier "Neo4jDbBackup-01" à l'emplacement du système de fichiers spécifié "C: \ Neo4j \"

Step 7 - Tapez la commande suivante et appuyez sur la touche Entrée.

copy C:\Ne04j2.0db C:\Neo4j\Neo4jDbBackup-01

Cela signifie que nos fichiers sont copiés dans le dossier de destination requis. Accédez à ce dossier et observez que le dossier contient nos fichiers de base de données.

Step 8 - Utilisez n'importe quel outil de compression / décompression Windows comme WinZip, 7 Zip ou WinRAR pour compresser notre dossier Database.

Step 9- Maintenant, notre fichier Neo4jDbBackup-01.zip est créé. Si vous avez des contraintes de mémoire dans votre système de fichiers, supprimez le dossier "Neo4jDbBackup-01" dans "C: \ Neo4j \"

Restauration de la base de données Neo4j

Step 1- Arrêtez le serveur de base de données. Veuillez vous référer aux étapes précédentes pour arrêter le serveur.

Step 2 - Vider le dossier actuel de la base de données.

Step 3 - Utilisez n'importe quel outil de compression / décompression Windows comme WinZip, 7 Zip ou WinRar pour décompresser notre dossier de sauvegarde.

Step 4 - Ouvrez l'invite de commande et exécutez la commande suivante.

Copy C:\Neo4j\Neo4jDbBackup-01 C:\Ne04j2.0db

Nous pouvons maintenant observer que notre dossier de base de données contient des fichiers de sauvegarde de travail

Step 5 - Démarrez le serveur en cliquant sur le bouton "Démarrer".

Step 6 - Exécutez quelques commandes MATCH + RETURN pour vérifier si nous avons correctement restauré notre base de données.

Neo4j SQL prend en charge les index sur les propriétés des nœuds ou des relations pour améliorer les performances de l'application. Nous pouvons créer des index sur les propriétés de tous les nœuds, qui ont le même nom d'étiquette.

Nous pouvons utiliser ces colonnes indexées sur les opérateurs MATCH ou WHERE ou IN pour améliorer l'exécution de la commande CQL.

Dans ce chapitre, nous verrons comment -

  • Créer un index
  • Supprimer un index

Créer un index

Neo4j CQL fournit la commande "CREATE INDEX" pour créer des index sur les propriétés Node ou Relation.

Syntaxe

Voici la syntaxe pour créer un index dans Neo4j.

CREATE INDEX ON:label (node)

Exemple

Avant de continuer avec l'exemple, créez un nœud Dhawan comme indiqué ci-dessous.

CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1995, POB: "Delhi"})

Voici un exemple de requête de chiffrement pour créer un index sur le nœud Dhawan dans Neo4j.

CREATE INDEX ON:player(Dhawan)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué ci-dessous.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Supprimer un index

Neo4j CQL fournit une commande "DROP INDEX" pour supprimer un index existant d'une propriété Node ou Relationhis.

Syntaxe

Voici la syntaxe pour créer un index dans Neo4j.

DROP INDEX ON:label(node)

Exemple

Voici un exemple de requête de chiffrement pour créer un index sur le nœud nommé «Dhawan» dans Neo4j.

DROP INDEX ON:player(Dhawan)

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Dans la base de données Neo4j, la commande CQL CREATE crée toujours un nouveau nœud ou une nouvelle relation, ce qui signifie que même si vous utilisez les mêmes valeurs, elle insère une nouvelle ligne. Conformément aux exigences de notre application pour certains nœuds ou relations, nous devons éviter cette duplication. Pour cela, nous devons utiliser certaines contraintes de base de données pour créer une règle sur une ou plusieurs propriétés d'un nœud ou d'une relation.

Comme SQL, la base de données Neo4j prend également en charge la contrainte UNIQUE sur les propriétés des nœuds ou des relations. La contrainte UNIQUE est utilisée pour éviter les enregistrements en double et pour appliquer la règle d'intégrité des données.

Créer une contrainte UNIQUE

Neo4j CQL fournit la commande "CREATE CONSTRAINT" pour créer des contraintes uniques sur les propriétés des nœuds ou des relations.

Syntaxe

Voici la syntaxe pour créer une contrainte UNIQUE dans Neo4j.

MATCH (root {name: "Dhawan"}) 
CREATE UNIQUE (root)-[:LOVES]-(someone) 
RETURN someone

Exemple

Avant de continuer avec l'exemple, créez 4 nœuds comme indiqué ci-dessous.

CREATE(Dhawan:player{id:001, name: "shikar Dhawan", YOB: 1995, POB: "Delhi"}) 
CREATE(Jonathan:player {id:002, name: "Jonathan Trott", YOB: 1981, POB: "CapeTown"}) 
CREATE(Sangakkara:player {id:003, name: "Kumar Sangakkara", YOB: 1977, POB: "Matale"}) 
CREATE(Rohit:player {id:004, name: "Rohit Sharma", YOB: 1987, POB: "Nagpur"}) 
CREATE(Virat:player {id:005, name: "Virat Kohli", YOB: 1988, POB: "Delhi"})

Voici un exemple de requête de chiffrement pour créer une contrainte UNIQUE sur l'ID de propriété à l'aide de Neo4j.

CREATE CONSTRAINT ON (n:player) ASSERT n.id IS UNIQUE

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.

Vérification

Maintenant, essayez d'ajouter un autre nœud avec une valeur d'identifiant redondante. Ici, nous essayons de créer un nœud avec id002.

CREATE (Jadeja:player {id:002, name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})

Si vous exécutez cette requête, vous obtiendrez un message d'erreur comme indiqué dans la capture d'écran suivante.

Nous avons déjà discuté de la création d'opérations de contrainte UNIQUE avec des exemples dans le chapitre précédent. Dans ce chapitre, nous aborderons la suppression de l'opération de contrainte UNIQUE avec des exemples.

Neo4j CQL fournit la commande "DROP CONSTRAINT" pour supprimer la contrainte Unique existante d'un nœud ou d'une propriété de relation.

Syntaxe

Voici la syntaxe pour supprimer une contrainte UNIQUE dans Neo4j.

DROP CONSTRAINT ON (node:label) 
ASSERT node.id IS UNIQUE

Exemple

Voici un exemple de requête de chiffrement pour supprimer la contrainte UNIQUE sur la propriété id.

DROP CONSTRAINT ON (n:player) 
ASSERT n.id IS UNIQUE

Pour exécuter la requête ci-dessus, procédez comme suit -

Step 1- Ouvrez l'application de bureau Neo4j et démarrez le serveur Neo4j. Ouvrez l'application de navigateur intégrée de Neo4j à l'aide de l'URLhttp://localhost:7474/ comme indiqué dans la capture d'écran suivante.

Step 2 - Copiez et collez la requête souhaitée dans l'invite du dollar et appuyez sur le bouton de lecture (pour exécuter la requête) mis en évidence dans la capture d'écran suivante.

Résultat

Lors de l'exécution, vous obtiendrez le résultat suivant.