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:
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:
Crear primero nuestra primer 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:
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:
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.
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':