ArangoDB - Opérations Crud

Dans ce chapitre, nous allons apprendre les différentes opérations avec Arangosh.

Voici les opérations possibles avec Arangosh -

  • Créer une collection de documents
  • Création de documents
  • Lecture de documents
  • Mise à jour des documents

Commençons par créer une nouvelle base de données. Nous utiliserons la ligne de code suivante pour créer une nouvelle base de données -

127.0.0.1:[email protected]_system> db._createDatabase("song_collection")
true

La ligne de code suivante vous aidera à passer à la nouvelle base de données -

127.0.0.1:[email protected]_system> db._useDatabase("song_collection")
true

L'invite passera à "@@ song_collection"

127.0.0.1:[email protected]_collection>

De là, nous étudierons les opérations CRUD. Créons une collection dans la nouvelle base de données -

127.0.0.1:[email protected]_collection> db._createDocumentCollection('songs')

Production

[ArangoCollection 4890, "songs" (type document, status loaded)]
127.0.0.1:[email protected]_collection>

Ajoutons quelques documents (objets JSON) à notre collection «chansons».

Nous ajoutons le premier document de la manière suivante -

127.0.0.1:[email protected]_collection> db.songs.save({title: "A Man's Best Friend",
lyricist: "Johnny Mercer", composer: "Johnny Mercer", Year: 1950, _key:
"A_Man"})

Production

{
   "_id" : "songs/A_Man",
   "_key" : "A_Man",
   "_rev" : "_VjVClbW---"
}

Ajoutons d'autres documents à la base de données. Cela nous aidera à apprendre le processus d'interrogation des données. Vous pouvez copier ces codes et les coller dans Arangosh pour émuler le processus -

127.0.0.1:[email protected]_collection> db.songs.save(
   {
      title: "Accentchuate The Politics", 
      lyricist: "Johnny Mercer", 
      composer: "Harold Arlen", Year: 1944,
      _key: "Accentchuate_The"
   }
)

{
   "_id" : "songs/Accentchuate_The",
   "_key" : "Accentchuate_The",
   "_rev" : "_VjVDnzO---"
}

127.0.0.1:[email protected]_collection> db.songs.save(
   {
      title: "Affable Balding Me", 
      lyricist: "Johnny Mercer", 
      composer: "Robert Emmett Dolan", 
      Year: 1950,
      _key: "Affable_Balding"
   }
)
{
   "_id" : "songs/Affable_Balding",
   "_key" : "Affable_Balding",
   "_rev" : "_VjVEFMm---"
}

Comment lire des documents

le _keyou le descripteur de document peut être utilisé pour récupérer un document. Utilisez le descripteur de document s'il n'est pas nécessaire de parcourir la collection elle-même. Si vous avez une collection, la fonction de document est facile à utiliser -

127.0.0.1:[email protected]_collection> db.songs.document("A_Man");
{
   "_key" : "A_Man",
   "_id" : "songs/A_Man",
   "_rev" : "_VjVClbW---",
   "title" : "A Man's Best Friend",
   "lyricist" : "Johnny Mercer",
   "composer" : "Johnny Mercer",
   "Year" : 1950
}

Comment mettre à jour des documents

Deux options sont disponibles pour mettre à jour les données enregistrées - replace et update.

La fonction de mise à jour corrige un document en le fusionnant avec les attributs donnés. En revanche, la fonction de remplacement remplacera le document précédent par un nouveau. Le remplacement se produira toujours même si des attributs complètement différents sont fournis. Nous allons d'abord observer une mise à jour non destructive, mettant à jour l'attribut Production` dans une chanson -

127.0.0.1:[email protected]_collection> db.songs.update("songs/A_Man",{production:
"Top Banana"});

Production

{
   "_id" : "songs/A_Man",
   "_key" : "A_Man",
   "_rev" : "_VjVOcqe---",
   "_oldRev" : "_VjVClbW---"
}

Lisons maintenant les attributs de la chanson mise à jour -

127.0.0.1:[email protected]_collection> db.songs.document('A_Man');

Production

{
   "_key" : "A_Man",
   "_id" : "songs/A_Man",
   "_rev" : "_VjVOcqe---",
   "title" : "A Man's Best Friend",
   "lyricist" : "Johnny Mercer",
   "composer" : "Johnny Mercer",
   "Year" : 1950,
   "production" : "Top Banana"
}

Un document volumineux peut être facilement mis à jour avec le update fonction, surtout lorsque les attributs sont très peu nombreux.

En revanche, le replace La fonction supprimera vos données en l'utilisant avec le même document.

127.0.0.1:[email protected]_collection> db.songs.replace("songs/A_Man",{production:
"Top Banana"});

Voyons maintenant la chanson que nous venons de mettre à jour avec la ligne de code suivante -

127.0.0.1:[email protected]_collection> db.songs.document('A_Man');

Production

{
   "_key" : "A_Man",
   "_id" : "songs/A_Man",
   "_rev" : "_VjVRhOq---",
   "production" : "Top Banana"
}

Maintenant, vous pouvez observer que le document ne contient plus les données d'origine.

Comment supprimer des documents

La fonction de suppression est utilisée en combinaison avec le descripteur de document pour supprimer un document d'une collection -

127.0.0.1:[email protected]_collection> db.songs.remove('A_Man');

Vérifions maintenant les attributs de la chanson que nous venons de supprimer en utilisant la ligne de code suivante -

127.0.0.1:[email protected]_collection> db.songs.document('A_Man');

Nous obtiendrons une erreur d'exception comme la suivante en sortie -

JavaScript exception in file
'/usr/share/arangodb3/js/client/modules/@arangodb/arangosh.js' at 97,7:
ArangoError 1202: document not found
! throw error;
! ^
stacktrace: ArangoError: document not found

at Object.exports.checkRequestResult
(/usr/share/arangodb3/js/client/modules/@arangodb/arangosh.js:95:21)

at ArangoCollection.document
(/usr/share/arangodb3/js/client/modules/@arangodb/arango-collection.js:667:12)
at <shell command>:1:10