07. BDs orientadas a documentos

Un documento es una especie de un objeto Javascript. Lo que viene a ser la tabla en bases de datos documentales se llaman colecciones. Estas bases de datos están diseñadas para almacenar, recuperar y gestionar grandes cantidades de información en formato documento. El documento es la unidad mínima de datos autocontenido. Puede variar la densidad de la información, es decir, el número de propiedades o de campos, si lo queremos comparar con SQL, que puede haber de un documento a otro. Por ejm, podemos pedir diferentes tipos de tlfo, puede ser un tlfo de casa, de oficina, móvil… en una tabla, de forma estricta tenemos que definir esos campos, en una base documental, de un documento a otro puede que tenga todos los tlfos, o uno, o dos… Tienen esta flexibilidad.

Características

  • Modelo basado en documentos: es la estructura de colecciones en formato JSON o BZON. En un objeto JSON sólo podemos meter contenido textual, en cambio, al tener un formato BZON (Binary JSON) podemos agregar otro tipo de objetos binarios, como puede ser una imagen, documento PDF, un video…
  • Las consultas y las búsquedas van a ser más eficientes ya que no son tan complejas.
  • Integración con los diferentes lenguajes de programación y frameworks.
  • Son las bases de datos NoSQL por referencia, las más conocidas, aunque ya existen más tipos de bases de datos NoSQL.

Aplicaciones

Además de MongoDB tenemos CauchDB, Apache Couch, Amazon Document DB, Firebase…

Usos

Otro de los usos de estas bases documentales es para el desarrollo de aplicaciones web y móviles, sistemas de gestión de contenidos

MongoDB

En este capítulo trabajaremos con la base de datos por referencia en bases de datos documentales, se trata de MongoDB, que es el gestor de bases de datos documentales más popular. Fue el primero que nació, sobre el año 2009.

Características

  • Tiene una alta flexibilidad.
  • Tiene una alta escalabilidad.
  • Las consultas suelen ser muy eficientes.
  • Al poder escalar de forma horizontal permite tener alta disponibilidad y replicación.
  • Escalabilidad geográfica.
  • Integración con otros tipos de lenguajes de desarrollo.

Su página oficial es https://www.mongodb.com/es/cloud/atlas/lp/try4, y tiene una versión gratuita. Para manejar esta base de datos tenemos que crearnos una cuenta. Podemos trabajar con MongoDB de forma local o en la nube, aunque se le saca mayor provecho si se trabaja con ella en la nube.

Ejercicio con MongoDB

Vamos a hacer un ejercicio completo para ver la sintaxis de las bases de datos documentales mediante MongoDB.

Sintaxis

-- Comandos

-- Mostrar las bases de datos
show dbs

-- Indicar que base de datos vamos a utilizar
use db_name

-- Crear una colección de libros
{
_id: ObjectId("123123"),
title: 'Libro 1',
author: 'Autor 1',
publishedYear: 1984,
genres: ['Ficción','Clásico'],
price: 12.99
}

-- CRUD
db.books.insertOne({
title: 'Nuevo libro',
author: 'Autor 2',
publishedYear: 1888,
genres: ['Policiaca','Ciencia Ficción'],
price: 11
})
db.books.find()
db.books.findOne({title: 'Libro 1'})
db.books.updateOne({title: 'Libro 1'}, {$set {price: 15}})
db.books.deleteOne({title: 'libro 1'})

-- Para insertar varias colecciones, en vez de insertOne() se usa la función
-- insertMany(array que vamos a insertar)
Scroll al inicio