# T.3.3.1 Instalación de MongoDB MongoDB es un programa de base de datos orientado a documentos multiplataforma y de código abierto. Además, MongoDB es una base de datos NoSQL, y utiliza documentos similares a JSON. MongoDB es desarrollado por MongoDB Inc. y su código es es escrito en C++. Características principales: * Consultas ad hoc. * Indexación. * Replicación. * Balanceo de carga. * Almacenamiento de archivos. * Ejecución de JavaScript del lado del servidor. ![](https://hackmd.io/_uploads/ryi3L5HaK.png) A continuación se describe el proceso de instalación y la creación de usuarios. --- ## Instalación de MongoDB En el siguiente enlace se encuentra el sitio oficial para proceder a descargar la versión reciente de MongoDB proceda con cada uno de los pasos aquí señalado [Sitio de descarga de MongoDB](https://www.mongodb.com/try/download/community) Una vez descargado el programa MongoDB procedemos a instalarlo a continuación se muestran algunas capturas de cada uno de los pasos predeterminados para dicha instalación. 1. Inicio de la instalación modo administrador ![](https://hackmd.io/_uploads/B1mV_5rpF.png) 2. Aceptación de los términos de licencia. ![](https://hackmd.io/_uploads/r1DBu5HaK.png) 3. Seleccione instalación modolo completo. ![](https://hackmd.io/_uploads/Hy5UdcBaK.png) 4. Seguir con los pasos predeterminados. Si desea cambiar la ubicación donde se almacenarán los datos lo puede realizar. ![](https://hackmd.io/_uploads/H1x9OcHpF.png) 5. Proceda con el último proceso hasta finalizar. Nota si la instalación le solicita algún permiso proceda a aceptarlo. ![](https://hackmd.io/_uploads/rkw1K9BTt.png) ## Comprobar Instalación 1. Una vez instalado proceda abrir el programa instalado MongoDBCompass. MongoDB Compass es la interfaz de administración por defecto usada para dicho propósito. En la figura siguiente se muestra la opción por defecto para conectarse al servidor MongoDB. Cabe indicar que si usted desea iniciar sesión con usuario y contraseña primero se debe crear dicho usuario y hacer clic en la opción (Fill in connectión fields idividually) la misma que se encuentra de color rojo. Para el uso de estos talleres procedemos conectarnos con el usuario por defecto pero, si ustede desea puede intentar concectarse con el usuario que se creará más adelante. ![](https://hackmd.io/_uploads/ByvPXjraF.png) 2. Una vez, ingresado MongoDB muestra la opción para crear bases datos. Además, usted observará tres bases de datos que se instalan por defecto como lo es "admin", "config" y "local". ![](https://hackmd.io/_uploads/HkIHSoHTt.png) 3. A manera de ejemplo proceda a crear una base a la cual la denominaremos "dbEjemplo1" y una tabla o colección que se le pondrá como nombre "datos". En la siguiente figura se muestra lo indicado. ![](https://hackmd.io/_uploads/By26roSTK.png) 4. Una vez creada la colección "datos" dentro de la base datos "dbEjemplo1" proceda a ingresar dando click en "datos". En la siguiente figura se muestra lo comentado. ![](https://hackmd.io/_uploads/Sy3cIjSaF.png) 5. Proceda a llenar la colección "datos" mediante la opción de importación de archivo que se muestra en la figura siguiente. ![](https://hackmd.io/_uploads/Hk85voHaK.png) 6. Proceda a importar los datos según el formato seleccionado. Una vez realizado la importación modifique los tipos de datos respectivos. Para finaliza haga clic en Import (color verde), y luego en el boton hecho (Done). ![](https://hackmd.io/_uploads/Bkca_oS6Y.png) 7. Una vez realizado lo anterior compruebe que los datos se encuenta ya disponibles dentro del entorno de MongoDB. Compruebe las distintas maneras de visualizar los datos mediante las opciones de vistas que se muesntran de color rojo. ![](https://hackmd.io/_uploads/HkpTtoBat.png) ## Creación de usuario Esta versión de MongoDB Compass incorpora un Shell o línea de comando la cual permite crear entre otras cosas usuarios y evaluar consulas. En este apartado crearemos dos tipos de usuarios; el primero con todos los privilegios y el segundo para el uso de una base datos específica. ![](https://hackmd.io/_uploads/Hkz-hoBpt.png) ### Creación de usuario administrador en MongoDB Para crear un usuario con rol de administrador se procede hacer lo siguiente: 1. Ubiquese en el MongoShell indicado anterioremente 2. Con el comando "use" procedemos a cambiarnos de bases de datos. ``` use admin ``` 3. Proceda a crear el usuario administrador tal como se muestra en la siguiente sentencia. Copie el contenido tal como está a continuación y proceda a pegar la consola respectiva. ``` db.createUser( { user: "administrador", pwd: "asd123", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ] }); ``` 4. En la figura siguente se muestra los resultados despues de haber digitado lo anterior. ![](https://hackmd.io/_uploads/S135f3BTF.png) ### Creación de usuario límitado en MongoDB Por motivo de seguridad se recomienda que las bases de datos permita conexiones de usuarios que tengan privilegios límitados. Para este propósito, a continuación se decribe la sentencia para la creación de un usuario que solo acceda a dicha base de datos. 1. Ubiquese en el MongoShell indicado anterioremente 2. Con el comando "use" procedemos a cambiarnos de bases de datos. En este caso el comando "use" además de cambiarse de bases de datos permite crear una base de datos si está no se encuentra creada. Para las pruebas se recomienda crear la base de datos "dbIoT" ``` use dbIoT ``` 3. Proceda a crear el usuario "iot" tal como se muestra en la siguiente sentencia. Copie el contenido tal como está a continuación y proceda a pegar la consola respectiva. ``` db.createUser({ user: "iot", pwd: "master2022", roles: [ { role: "userAdmin", db: "dbIoT" }, { role: "dbAdmin", db: "dbIoT" }, { role: "readWrite", db: "dbIoT" } ] }); ``` 4. En la figura siguente se muestra los resultados despues de haber digitado lo anterior. ![](https://hackmd.io/_uploads/Bk7yUnSpK.png) Para comprobar los usuarios creados puede digitar el siguiente comando: ``` db.auth('iot','master2022') db.getUsers() ``` Otros comandos que permite verificar conexión puede ser: ``` mongo --port 27017 --authenticationDatabase 'admin' mongo --port 27017 -u test -p pwd --authenticationDatabase 'admin' ``` ![](https://hackmd.io/_uploads/H1BdNILaK.png) :::info :bulb: **Tarea**: Se le solicita que realice lo siguiente: 1. Cambiese a la base de datos dbEjemplo1 2. Ejecute los comandos siguientes: * db.datos.find() * db.datos.findOne() * db.datos.find({Name : {$eq: 'Alfie Saunders'}}); * db.datos.find({Amount : {$gt: 554}}); * db.datos.find({Amount : {$gt: 555}}); ::: ### Drivers ODBC para el uso de MongoDB Un requisito para conectarse a MongoDB usando una plataforma como PowerBI es mediante el uso de Driver ODBC para MongoDB. Hasta el momento del desarrollo de esté manual se propone descargar el driver del siguiente links. Cabe indicar que se recomienda REGISTRAR YA QUE EL Driver ODBC solicita una licencia. El link de descarga es el siguiente: 1. Registrarse en: [MongoDB ODBC & JDBC Driver](https://www.magnitude.com/drivers/mongodb-odbc-jdbc) 2. Una vez registrado proceda a descargar el archivo de instalación respectivo. Cabe indicar que los instaladores se encuentran la ruta de la asignatura "Bibliografía\Instaladores\Driver-MongoDB". 4. Confirme en su cuenta de correo correo eléctronico el archivo de licencia. En la figura siguiente se muestra lo indicado. ![](https://hackmd.io/_uploads/BJI4vEqaK.png) 5. Descargue el archivo. Además, en el correo se explica que el archivo descargado debe ser copiado en la carpeta lib de la instalación del Driver 6. Proceda con el instalador respectivo e instale. La instalación es fácil y rápida. 7. Copie el archivo descargado en la ruta de instalación respectiva pero, dentro de la carpeta "lib". En la figura siguiente se muestra lo indicado ![](https://hackmd.io/_uploads/ByDDdVq6K.png) 8. Una vez, que ha copiado el archivo y pegado en la ruta como se muestra en la figura anterior proceda a crear una nueva fuente de datos. Para realizar dicho objetivo proceda a ir a herramientas administrativas de windows y eliga la fuente de datos según corresponda (32 bits o 64 bits). En la imagen siguiente se muestra lo indicado (DNS DE SISTEMA) proceda hacer click en agregar. ![](https://hackmd.io/_uploads/rkjXjVqpt.png) 9. En la siguiente ventana seleccione la opción del driver instalado. En este caso es Simba MongoDB ODBC Driver. ![](https://hackmd.io/_uploads/Bkh3zNq6F.png) 10. Proceda a configurar tal como se muestra en la figura. En general, no debe darle ningún problema. Si desea configurar un usuario y contraseña cambie el mecanismo de autentificación. ![](https://hackmd.io/_uploads/S1M9B4cpF.png) 11. Una vez configurado los parámetros que se muestra en la figura anterior presione el botón Test. Las respuesta debe ser favorable tal como se muestra en la figura siguiente. ![](https://hackmd.io/_uploads/S1nsn49pY.png) Lastimosamente es una versión trial por lo cual tiene un período de caducidad. En todo caso para las pruebas requeridas es un tiempo suficiente. Si el mensaje anterior produce un error verífique que el archivo de licencia se encuentra en la ruta previamente indicada. 12. Presione aceptar y el driver debe quedar registrado tal como se lo muestra en la siguiente figura: ![](https://hackmd.io/_uploads/B1AKaV56K.png) A continuación se va indicar los pasos para conectarse a dicha fuente de datos usando Microsoft Power BI. ### Cargar datos en Microsoft Power BI. Antes de proceder a realizar este apartado previamente se debe entender qué, para las pruebas realizadas ya se tiene información de una base de datos y de una colección ("sensores") que ha estado constantemente almacenando registros en la bases de datos MongoDB. 1. Una vez ingresado a Microsoft Power Bi proceda a hacer click en la opción Obtener datos y haga click en Mas. ![](https://hackmd.io/_uploads/H13fCVcTF.png) 2. Busque la fuente de datos ODBC y seleccione y proceda hacer click en Conectar ![](https://hackmd.io/_uploads/S1JKRE9pY.png) 3. Seleccione la fuente creada en el DSN de sistema en este caso selecciono Conexion-MongoDB. Presione aceptar. 4. Seguidamente digite un usuario y contraseña en este caso ubicaremos el usario administrador previamente creado y la contraseña respectiva "asd123" ![](https://hackmd.io/_uploads/rkqwkB9aF.png) 5. Finalmente, en la siguiente pantalla se puede hacer dos acciones. La primera es cargar los datos al entorno Power BI y la segunda para transformar los datos. Proceda por la primera opción y comience hacer lo indicado en clases. ![](https://hackmd.io/_uploads/HkRIeHc6F.png) :::info :bulb: **Tarea**: Una vez obtenida conexión a MongoDB trate de desarrollar el mapa tal como se lo hizo en clases. Puede visualizar el video en su última hora. ::: ### Bibliografía: [Comandos en MongoDB](https://geekflare.com/es/mongodb-queries-examples/) [Operaradores para el uso de consultas númericas MongoDB](https://docs.mongodb.com/manual/reference/operator/query-comparison/ ) By Willian Zamora Mero.