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:[email protected]_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:[email protected]_system> db._useDatabase("song_collection")
true

El mensaje cambiará a "@@ song_collection"

127.0.0.1:[email protected]_collection>

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

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

Salida

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

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

Agregamos el primer documento de la siguiente manera:

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"})

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:[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---"
}

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:[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
}

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:[email protected]_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:[email protected]_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:[email protected]_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:[email protected]_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:[email protected]_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:[email protected]_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