lunes, 18 de agosto de 2014

Configurar MongoDB nivel Newbie

En nuestro último proyecto hemos apostado por MongoDB para persistir los datos de un proveedor personalizado de TempData en ASP.NET MVC.

Lo cierto es que instalar MongoDB no es complicado, pero cada vez que hay que hay instalarlo y configurarlo en un equipo nuevo en la oficina, se invierte un tiempo valioso en volver a leer la documentación y ponerlo en línea. Es por ello que en este post veremos como ponerlo en funcionamiento siguiendo unos sencillos pasos.

Una vez descargado e instalado lo siguiente será configurarlo.

Yo personalmente sólo configuro lo siguiente:

  • Ruta a las bases de datos.
  • Creación de un fichero de log.
  • Instalación como un servicio.

Aunque podemos arrancar desde la línea de comandos mongod.exe con los parámetros --dbpath y --logpath, parece más útil crear un fichero de configuración donde establecer estos valores y algún otro.

La sintaxis del fichero de configuración puede ser YAML (a partir de la versión 2.6) o estilo INI (versiones anteriores pero todavía soportado en las versión actual por compatibilidad).

Si eliges YAML ten en cuenta que no le gustan los tabuladores y que espera encontrar espacios.

El fichero de configuración en YAML sería como sigue:

storage:

  dbPath: C:\MongoDB\data\db #Por defecto C:\data\db

systemLog:

  destination: file

  path: C:\MongoDB\log\mongo.log

  logAppend: true

En formato INI sería así:

dbpath = C:\MongoDB\data\db

logpath = C:\MongoDB\log\mongodb.log

logappend = true

En ambos ficheros de configuración se está configurando:

  • La ruta a las bases de datos
  • La ruta al fichero de log
  • Se está especificando que el fichero de log no sea eliminado cada vez que mongod arranque de nuevo.

Como podrás imaginar hay un montón de configuración extra que puede especificarse, bien desde la línea de comandos bien desde un fichero de configuración. Cabe mencionar también que todos los directorios que referenciemos en nuestro fichero de configuración tienen que estar creados. Es decir, mongod no creará ningún directorio por nosotros.

Sea cual sea el formato elegido, ahora podremos arrancar nuestra instancia de mongod con el siguiente comando:

mongod --config ruta_fichero_configuración

En nuestro caso, el fichero de configuración lo guardamos en C:\MongoDB\config.conf.

En este punto ya podríamos arrancar MongoDB desde la línea de comandos, pero para ponerlo aun más sencillo (y porque en un servidor de producción no parece adecuado), veremos ahora como crear un servicio que arranque MongoDB automáticamente. La verdad es que es muy sencillo y mongod viene ya preparado para que la tarea sea coser y cantar.

Lo único que hay que hacer es abrir un cmd con permisos de administrador y escribir lo siguiente:

mongod --config "C:\MongoDB\config.conf" --install

Y ya está, MongoDB instalado como un servicio!

Lo último que tienes que hacer es arrancar el servicio y ejecutar mongo.exe desde la línea de comandos o utilizar un cliente gráfico como Robomongo (gracias @_rubenfa) o MongoVUE.

Un saludo!