Tutorial de MongoDB: introducción e instalación
Por lo general, los diferentes modelos de bases de datos, SQL o NoSQL, se diferencian significativamente en cuanto a su configuración y funcionamiento. El software de código abierto MongoDB es el ejemplo perfecto para demostrar que, aun cuando se utiliza una base de datos NoSQL, esto no implica necesariamente que se tengan que tirar por la borda todos los conocimientos sobre bases de datos relacionales. Aunque la base de datos orientada a documentos se diferencia en gran medida de clásicos como MySQL, ambos modelos comparten ciertas similitudes que encontrarás en nuestra guía sobre MongoDB. Aunque MongoDB requiere una familiarización con el lenguaje de consulta y la sintaxis de comandos, iniciarse en él no implica una gran dificultad para usuarios experimentados en el uso de SQL.
En el siguiente tutorial de MongoDB nos ocupamos de la instalación, configuración y gestión de este moderno sistema de bases de datos, utilizando Ubuntu como ejemplo.
Paso 1: la instalación
En el área de descargas de la página oficial de MongoDB encontrarás la edición de código abierto “Community Server”, así como la solución comercial para empresas. El primer paso consiste en seleccionar los archivos binarios de instalación para tu sistema y descargarlos. MongoDB es un programa multiplataforma, por lo que se adapta a una gran variedad de sistemas, como Windows, Linux, OS X y Solaris. En un sistema operativo Windows, es posible instalar la base de datos utilizando simplemente el archivo de instalación descargado y almacenándolo en el directorio correspondiente. Los usuarios de Windows 10 pueden utilizar la versión para Windows Server 2008 (64 bits). Para Linux y otros sistemas UNIX es necesario descargar el archivo, descomprimirlo e instalarlo con la ayuda del gestor de paquetes correspondiente. Dependiendo de la distribución, tendrás que importar la clave pública GPG para MongoDB. Ubuntu requiere esta clave de autenticación, por lo que se debe implementar el siguiente comando:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
A continuación, actualiza la lista del gestor de paquetes:
sudo apt-get update
Finalmente, instala MongoDB, así como otras herramientas útiles de gestión:
sudo apt-get install -y mongodb-org
Paso 2: inicia el servidor MongoDB
Si lo deseas, en el archivo de configuración /etc/mongod.conf puedes cambiar el directorio de instalación asignado por defecto /var/lib/mongodb, así como el directorio de registro /var/log/mongodb. Utiliza el siguiente comando para iniciar la base de datos:
sudo service mongod start
Si, en lugar de utilizar el parámetro start, se utiliza el parámetro stop, se finaliza la ejecución de la base de datos; restart se encargará de reiniciarla. Para comprobar si MongoDB se ha iniciado con éxito, puedes buscar la siguiente línea de comando en el archivo de registro /log/mongodb/mongod.log:
[initandlisten] waiting for connections on port <port>
Esta indica que el servidor de la base de datos se está ejecutando y espera las conexiones entrantes del puerto definido (<port>) en el archivo de configuración. Se utiliza por defecto el puerto 27017.
Paso 3: iniciar el cliente
Una vez se ejecuta el servidor MongoDB, se puede iniciar el cliente. En este punto se utiliza Mongo shell, la interfaz de comandos incluida por defecto, basada en JavaScript y utilizada para la administración de la base de datos, así como para el acceso y la actualización del conjunto de datos. Con este comando puedes iniciar el cliente dentro del mismo sistema en el que se ejecuta la aplicación MongoDB:
mongo
Mongo shell se conecta automáticamente con la instancia de Mongo DB ejecutada en el host y el puerto local 27017. También es posible modificar los ajustes estándar y adaptarlos a las propias necesidades. La siguiente tabla resume estas y otras opciones importantes:
Parámetro | Descripción |
--shell | Activa la interfaz del shell y la presenta después de ejecutar un comando. |
--nodb | Evita que Mongo shell se conecte con una base de datos. |
--port <port> | Define el puerto para la conexión. |
--host <hostname> | Define el host para la conexión. |
--help o -h | Muestra las opciones. |
--username <username> o -u <username> | Una vez definidos los permisos de acceso, podrás acceder con tu respectivo nombre de usuario (<username>). |
--password <password> o -p <password> | Cuando se han definido los permisos de acceso, podrás acceder utilizando la contraseña (<password>) correspondiente.</password> |
Los símbolos de menor que (<) y mayor que (>) utilizados en la tabla anterior no forman parte del parámetro como tal y por lo tanto no aparecen en el comando final. El proceso de definición del puerto significa, por ejemplo, que si decides utilizar el puerto 40000 en vez del 27017, se verá así:
mongo --port 40000
Con Managed MongoDB from IONOS puedes concentrarte en lo importante. Tanto si se trata de trabajos de instalación, funcionamiento o mantenimiento, IONOS garantiza un funcionamiento confiable de tus bases de datos de alto rendimiento.
Paso 4: crear una base de datos
Una vez MongoDB y el cliente están en funcionamiento, puedes concentrarte en la gestión y edición de datos. Sin embargo, antes que nada es necesario crear una base de datos, de lo contrario, el conjunto de datos (collections) y los documentos se almacenarán en la base de datos de prueba generada automáticamente. El comando use facilita la creación de una base de datos. Si deseas crear una con el nombre mibasededatos, utiliza el siguiente comando:
use mibasededatos
El comando use también permite seleccionar una base de datos MongoDB ya existente en caso de que quieras utilizarla para el procesamiento de datos. Con la ayuda del comando corto db, puedes identificar qué base de datos se encuentra actualmente seleccionada.
Paso 5: crear collection
El siguiente paso es crear tu primera collection o carpeta de archivos para los diferentes documentos BSON, en donde, posteriormente, se guardará la totalidad de los datos. La sintaxis básica es esta:
db.createCollection(<name>, { options } )
Así, el comando tiene ambos parámetros: name (nombre de la carpeta de archivos) y options (opciones de configuración para collection). En las opciones se especifica, por ejemplo, si se debe limitar el tamaño de los archivos (capped: true) o si se deben limitar la cantidad de bytes (size: <number>) o el número de documentos (max: <number>) en una collection. Una collection denominada micarpetadearchivos, con un límite de bytes de 6.142.800 y un máximo de 10.000 documentos se crearía, por ejemplo, con el siguiente comando (el espacio en blanco solo sirve para ofrecer mejor claridad:
db.createCollection ("micarpetadearchivos", { capped: true,
size: 6142800,
max: 10000 } )
Paso 6: agregar documentos
Una vez se ha creado la carpeta, se le pueden añadir documentos. Para ello existen, principalmente, tres métodos:
- .insertOne()
- .insertMany()
- .insert()
De esta forma es posible añadir solo un documento (.insertOne), algunos documentos (.insertMany) o un gran volumen de documentos (.insert). El siguiente ejemplo muestra una entrada de base de datos con tres datos simples: nombre, edad y ocupación, que se insertarán en la carpeta creada en el paso anterior.
db.micarpetadearchivos.insertOne(
{
Nombre: "nombre",
Edad: 28,
Ocupación: "estudiante"
}
)
Así, tanto para esta entrada, como para todas las futuras, MongoDB genera automáticamente un identificador único para cada collection.
Paso 7: administrar documentos
En la etapa final de nuestro tutorial de MongoDB mostramos el proceso de gestión básica de los documentos creados. Para poder realizar cualquier cambio en un documento debes encontrarlo. Esta solicitud se logra con el comando find y puede, de ser necesario, presentarse y filtrarse con los parámetros query filter (filtros de consulta) y projection (especificación de los resultados). Por ejemplo, para acceder al documento generado en el paso anterior, se utiliza el siguiente comando:
db.micarpetadearchivos.find( { Nombre: "nombre", Edad: 28 } )
Si lo que quieres es actualizar este documento, puedes valerte de la función update. Para ello, escoge el valor que deseas cambiar, selecciona un operador update y especifica el nuevo valor. Por ejemplo, para modificar la edad del caso anterior, necesitas el operador $set:
db.micarpetadearchivos.update(
{ Edad: 28 },
{
$set: { Edad: 30 }
}
)
Para conocer otros de los operadores update, visita la documentación en inglés de la web oficial de MongoDB.
Para eliminar los documentos de una collection, utiliza el comando remove:
db.micarpetadearchivos.remove ()
La única manera de eliminar documentos individuales o colecciones es mediante la definición de criterios tales como la identificación del archivo u otros valores exactos que le permitan a MongoDB determinar de qué tipo de registro se trata. Cuánto más específico seas, más exacta será la actuación del sistema a la hora de eliminar archivos. Por ejemplo, el comando:
db.micarpetadearchivos.remove ( { Edad: 28 } )
elimina todas las entradas con el valor 28 para el campo “Edad”. Usando el parámetro justOne (1) también es posible especificar que solo quieres eliminar una de las entradas con dicho valor:
db.micarpetadearchivos.remove ( { Edad: 28 }, 1 )
Para obtener más información sobre, por ejemplo, la administración de usuarios, las configuraciones de seguridad, la creación de réplicas o la distribución de datos en múltiples sistemas, visita la documentación oficial en mongodb.com o el tutorial de MongoDB en tutorialspoint.com.