Guía práctica para operar MongoDB en entornos Windows

MongoDB es un motor de persistencia orientado a documentos, diseñado para soportar aplicaciones web que requieren alta disponibilidad y escalabilidad horizontal. Escrito en C++, combina la flexibilidad de los esquemas dinámicos con expresivas capacidades de consulta, utilizando BSON (Binary JSON) como formato nativo de almacenamiento.

Solución al error 1067 al iniciar el servicio

Cuando el servicio de MongoDB no arranca y retorna el código 1067, el proceso suele detenerse por inconsistencias en los archivos de bloqueo. El procedimiento de recuperación es el sgiuiente:

  1. Eliminar el archivo de bloqueo:
    C:\mongodb\bin\data\db\mongod.lock
  2. Desinstalar el servicio mediante un script batch:
    @echo off
    cd "C:\mongodb\bin"
    mongod.exe --config "C:\mongodb\bin\mongo.conf" --remove --journal
    pause
    
  3. Volver a registrar el servicio:
    @echo off
    cd "C:\mongodb\bin"
    mongod.exe --config "C:\mongodb\bin\mongo.conf" --install --journal
    pause
    
  4. Iniciar el servicio desde consola:
    net start mongodb

Exportación de datos a Excel

Para generar reportes en hojas de cálculo, utiliza mongoexport con formato CSV:

mongoexport ^
  -h 192.168.182.202 ^
  -d ZTEPartnerSys ^
  -c logsystemdelegatemodels ^
  -f LogUserId,SubmitDateTime ^
  --csv ^
  -o reporte.csv

Después de la exportación, abre el archivo reporte.csv con el Bloc de notas y guárdalo con codificación ANSI para evitar problemas de caracteres al abrirlo en Excel.

Respaldos y restauraciones

Crear un respaldo:

mongodump ^
  --host 192.168.182.202 ^
  --db ZTEPartnerSys ^
  --out C:\backups\mongodump_$(Get-Date -Format 'yyyyMMdd')

Restaurar una colección:

mongorestore ^
  --host 192.168.182.202 ^
  --db ZTEPartnerSys ^
  --collection logsystemdelegatemodels ^
  C:\backups\mongodump_20240610\ZTEPartnerSys\logsystemdelegatemodels.bson

Habilitar autenticación

  1. Crear el usuario administrador en la base admin:
    use admin
    db.createUser({
      user: "adminRoot",
      pwd:  "S3cr3t#2024",
      roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    })
    
  2. Crear un usuario con acceso limitado a una base de datos específica:
    use TestDB
    db.createUser({
      user: "appUser",
      pwd:  "AppP@ss",
      roles: [ { role: "readWrite", db: "TestDB" } ]
    })
    
  3. Modificar el servicio para que arranque con autenticación:
    Cambia la clave ImagePath en el registro de Windows:
    "C:\mongodb\bin\mongod.exe" --config "C:\mongodb\bin\mongo.conf" --auth --service
  4. Reiniciar el servicio:
    net stop mongodb
    net start mongodb
    

Cadena de conexión con credenciales

Conexión sin autenticación:

<add name="ZTEPartnerDB2"
     connectionString="mongodb://192.168.182.202" />

Conexión con usuario y contraseña:

<add name="ZTEPartnerDB2"
     connectionString="mongodb://adminRoot:S3cr3t#2024@192.168.182.202/admin" />

Exploración visual con Robo 3T

Robo 3T (anteriormente Robomongo) permite explorar y administrar bases de datos MongoDB mediante una interfaz gráfica. Para conectarte:

  1. Abre Robo 3T y pulsa "Create".
  2. Introduce la dirección del servidor y el puerto (por defecto 27017).
  3. Si la autenticación está activa, selecciona la pestaña "Authentication" y rellena usuario, contraseña y base de datos de autenticación.
  4. Guarda la conexión y haz clic en "Connect".

Etiquetas: MongoDB Windows Authentication backup csv-export

Publicado el 9-4 05:51