3 - Elementos esenciales de MongoDB: Base De Datos - Colección - Documento

MongoDB es una base de datos documental, el elemento esencial es el documento que normalmente se los agrupa en colecciones de documentos similares. Una base de datos en MongoDB es un conjunto de colecciones:

Elementos de MongoDB base de datos colección documento

MongoDB utiliza el formato JSON para representar los datos en un "documento":

{
  codigo: 1,  
  nombre: 'El aleph',
  autor: 'Borges',
  editoriales: ['Planeta','Siglo XXI']
}

El documento anterior representa un libro donde se almacenan su código, nombre, autor y editoriales que lo suministran.

Si uno ha trabajado mucho con gestores de bases de datos relacionales puede relacionar este concepto de "documento" con el de registro de una tabla, veremos más adelante que un documento en MongoDB es mucho más flexible y desestructurado.

Un consejo es tratar de no comparar constantemente los gestores de bases de datos relacionales con MongoDB, mirar sin prejuicios las bondades que aportan los gestores de bases de datos documentales e imaginar las ventajas que nos aportan cuando debemos almacenar y recuperar datos.

Ingresemos al programa que viene por defecto en Mongo para interactuar con el gestor de base de datos:

MongoDB aplicación de consola (shell)

Crear primero nuestra primer base de datos:

MongoDB crear base de datos

Mediante el comando use activamos una base de datos existente o creamos una nueva (en nuestro caso la llamamos base1), queda luego activa la base de datos "base1".

Procedemos ahora a crear la colección libros e insertar el primer documento, la colección se crea en el momento que insertamos el primer documento:

db.libros.insertOne(
  {
    codigo: 1,  
    nombre: 'El aleph',
    autor: 'Borges',
    editoriales: ['Planeta','Siglo XXI']
  }
)

En el shell de Mongo tenemos que ingresar:

MongoDB crear colección y documento

Luego de esto ya se ha creado la colección "libros" y se ha insertado el primer documento.

Procedamos a insertar el segundo documento:

db.libros.insertOne(
  {
    codigo: 2,
    nombre: 'Martin Fierro',
    autor: 'Jose Hernandez',
    editoriales: ['Planeta']
  }
)

Tengamos en cuenta que mediante el objeto "db" accedemos a la base de datos activa (la misma la activamos con el comando use base1), seguidamente disponemos el nombre de la colección "libros" y finalmente el nombre del método "insertOne" al que le pasamos un objeto en formato JSON.

Ahora nuestra colección "libros" tiene dos documentos, si queremos mostrar los datos almacenados en la colección "libros" podemos llamar al método "find" sin pasar parámetros al mismo:

MongoDB mostrar documentos de una colleccion con find

Los datos que vemos coinciden con los ingresados al llamar al método insertOne, con la salvedad que se ha agregado un campo llamado _id en forma automática.

Todos los documentos requiere una clave principal almacenada en el campo _id. Podemos indicar nosotros el valor a almacenar en el campo _id, pero si no lo hacemos se crea en forma automática.

Acotaciones

Cada vez que iniciamos MongoDB shell se activa por defecto la base de datos 'test' mediante el comando 'use' debemos activar la base de datos que necesitamos trabajar. Para saber en todo momento que base de datos se encuentra activa debemos escribir la variable 'db':

MongoDB base de datos seleccionada