Saltar a contenido

gMongoDBConnect

gMongoDBConnect es una librería de Go que proporciona funcionalidad para conectarse e interactuar con bases de datos MongoDB. Ofrece una interfaz sencilla para establecer una conexión, manejar operaciones en la base de datos y gestionar comprobaciones de salud para la instancia de MongoDB.

Instalación

Para usar gMongoDBConnect en tu proyecto de Go, puedes utilizar el siguiente comando para instalar la librería:

go get github.com/architecture-it/gMongoDBConnect

Uso

Importa el paquete gMongoDBConnect en tu código de Go:

import "github.com/architecture-it/gMongoDBConnect"

Crear un Repositorio de MongoDB

Para crear un repositorio de MongoDB, utiliza la función NewRepository, que toma la URL de conexión de MongoDB y el nombre de la base de datos como parámetros:

repo := gMongoDBConnect.NewRepository("mongodb://localhost:27017", "mydatabase")

Opcionalmente, puedes proporcionar una instancia de health.Health para habilitar comprobaciones de salud para la conexión de MongoDB. Si se proporciona una instancia de health.Health, el repositorio registrará automáticamente una comprobación de salud para la conexión de MongoDB:

healthInstance := health.New()
repo := gMongoDBConnect.NewRepository("mongodb://localhost:27017", "mydatabase", healthInstance)

Obtener la Conexión a la Base de Datos

Para obtener la conexión a la base de datos de MongoDB, utiliza el método GetDB del repositorio:

db := repo.GetDB(context.Background())
if db != nil {
    // Realiza operaciones en la base de datos utilizando la instancia 'db'
} else {
    // Fallo al establecer una conexión con la base de datos de MongoDB
}

El método GetDB devuelve una instancia *mongo.Database que se puede utilizar para interactuar con la base de datos de MongoDB. Si no se establece la conexión o se produce un error, se devuelve nil.

Reconexión Automática

Si se llama al método GetDB y la conexión a la base de datos no se establece o se produce un error, el repositorio intentará reconectarse a la instancia de MongoDB:

db := repository.GetDB(context.Background())
if db != nil {
    // Realiza operaciones en la base de datos utilizando la instancia 'db'
} else {
    // Fallo al establecer una conexión con la base de datos de MongoDB
    // Se intentará la reconexión automática
    // Puedes manejar el error o volver a intentar la operación más tarde
}

La función de reconexión automática asegura que tu aplicación pueda recuperarse de fallos temporales de conexión y reanudar las operaciones normales.

Comprobaciones de Salud

Si se proporciona una instancia de health.Health durante la creación del repositorio, gMongoDBConnect registrará automáticamente una comprobación de salud para la conexión de MongoDB. La comprobación de salud monitoriza la conectividad y capacidad de respuesta de la instancia de MongoDB.

Para utilizar la función de comprobación de salud, asegúrate de haber importado los paquetes necesarios:

import (
    "github.com/architecture-it/go-platform/log"
    "github.com/architecture-it/gHealth-go"
    "github.com/architecture-it/gHealth

-go/checks/mongo"
)

Además, asegúrate de importar el paquete health y el paquete healthMongo en tu código.

Registro de Eventos

gMongoDBConnect utiliza el paquete go-platform/log para registrar eventos. Puedes configurar el registro de eventos según las necesidades de tu aplicación.

Ejemplo

Aquí tienes un ejemplo de cómo utilizar gMongoDBConnect en una aplicación de Go:

package main

import (
    "context"
    "fmt"

    "github.com/architecture-it/gMongoDBConnect"
)

func main() {
    // Crea un nuevo repositorio de MongoDB
    repo := gMongoDBConnect.NewRepository("mongodb://localhost:27017", "mydatabase")
    // Obtiene la conexión a la base de datos
    db := repository.GetDB(context.Background())
}

Este ejemplo demuestra cómo crear un repositorio de MongoDB, obtener la conexión a la base de datos y realizar operaciones en la base de datos.

Conclusión

La librería gMongoDBConnect proporciona una forma conveniente de conectarse a bases de datos MongoDB en aplicaciones de Go. Ofrece reconexión automática, comprobaciones de salud y una interfaz intuitiva para interactuar con la base de datos.