ArangoDB - Operaciones Crud

En este capítulo aprenderemos las diferentes operaciones con Arangosh.

Las siguientes son las posibles operaciones con Arangosh:

  • Crear una colección de documentos
  • Crear documentos
  • Leer documentos
  • Actualización de documentos

Comencemos por crear una nueva base de datos. Usaremos la siguiente línea de código para crear una nueva base de datos:

127.0.0.1:8529@_system> db._createDatabase("song_collection")
true

La siguiente línea de código lo ayudará a cambiar a la nueva base de datos:

127.0.0.1:8529@_system> db._useDatabase("song_collection")
true

El mensaje cambiará a "@@ song_collection"

127.0.0.1:8529@song_collection>

A partir de aquí estudiaremos Operaciones CRUD. Creemos una colección en la nueva base de datos:

127.0.0.1:8529@song_collection> db._createDocumentCollection('songs')

Salida

[ArangoCollection 4890, "songs" (type document, status loaded)]
127.0.0.1:8529@song_collection>

Agreguemos algunos documentos (objetos JSON) a nuestra colección de 'canciones'.

Agregamos el primer documento de la siguiente manera:

127.0.0.1:8529@song_collection> db.songs.save({title: "A Man's Best Friend",
lyricist: "Johnny Mercer", composer: "Johnny Mercer", Year: 1950, _key:
"A_Man"})

Salida

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

Agreguemos otros documentos a la base de datos. Esto nos ayudará a conocer el proceso de consulta de datos. Puede copiar estos códigos y pegar los mismos en Arangosh para emular el proceso -

127.0.0.1:8529@song_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:8529@song_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---"
}

Cómo leer documentos

los _keyo el identificador de documentos se puede utilizar para recuperar un documento. Utilice el identificador de documentos si no es necesario recorrer la colección en sí. Si tiene una colección, la función de documento es fácil de usar:

127.0.0.1:8529@song_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
}

Cómo actualizar documentos

Hay dos opciones disponibles para actualizar los datos guardados: replace y update.

La función de actualización parchea un documento, fusionándolo con los atributos dados. Por otro lado, la función reemplazar reemplazará el documento anterior por uno nuevo. El reemplazo seguirá ocurriendo incluso si se proporcionan atributos completamente diferentes. Primero observaremos una actualización no destructiva, actualizando el atributo Producción` en una canción -

127.0.0.1:8529@song_collection> db.songs.update("songs/A_Man",{production:
"Top Banana"});

Salida

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

Leamos ahora los atributos de la canción actualizada:

127.0.0.1:8529@song_collection> db.songs.document('A_Man');

Salida

{
   "_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 documento grande se puede actualizar fácilmente con el update función, especialmente cuando los atributos son muy pocos.

En contraste, el replace La función eliminará sus datos al usarla con el mismo documento.

127.0.0.1:8529@song_collection> db.songs.replace("songs/A_Man",{production:
"Top Banana"});

Veamos ahora la canción que acabamos de actualizar con la siguiente línea de código:

127.0.0.1:8529@song_collection> db.songs.document('A_Man');

Salida

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

Ahora, puede observar que el documento ya no tiene los datos originales.

Cómo quitar documentos

La función de eliminación se utiliza en combinación con el identificador de documentos para eliminar un documento de una colección:

127.0.0.1:8529@song_collection> db.songs.remove('A_Man');

Ahora verifiquemos los atributos de la canción que acabamos de eliminar usando la siguiente línea de código:

127.0.0.1:8529@song_collection> db.songs.document('A_Man');

Obtendremos un error de excepción como el siguiente como resultado:

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