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.