Cómo conectar MongoDB con Golang

Cómo conectar MongoDB con Golang

Al igual que el idioma C, el idioma Golang también es un idioma de código abierto que se puede ejecutar en muchas herramientas en Windows y Linux/Unix Systems para crear registros. Al igual que C ++ y Java, podemos hacer una conexión entre un sistema de cliente MongoDB y el lenguaje GO con cualquier herramienta de Golang. Para hacer esto, realizaremos varios pasos muy importantes y necesarios en Ubuntu 22.04 utilizando la herramienta de código Visual Studio para un programa. Antes de hacer una conexión con MongoDB Compass, tendemos a instalar MongoDB y Código de Visual Studio junto con "Go" y requeridas extensiones en la guía para ayudarlo en el idioma GO.

Instalar MongoDB

Hemos descargado el paquete "Deb" del servidor MongoDB desde su sitio web oficial. El paquete "Deb" también se puede ejecutar en Ubuntu utilizando la herramienta de comando "DPKG" en el terminal.

Ejecutó el archivo del servidor MongoDB en el terminal con los derechos "sudo" y proporcionó un código de acceso.

saeedraza@virtualbox: ~ $ sudo dpkg -i mongodb-org-server_6.0.3_amd64.debutante


Si encontró el servicio MongoDB inactivo al final después de probar la instrucción "SystemCTL" de Ubuntu para verificar el estado, también puede actualizarlo. Para activar el MongoDB, pruebe la instrucción SystemCTL con las palabras clave "Inicio" y "Habilitar".

saeedraza@virtualbox: ~ $ sudo systemctl start mongod
saeedraza@virtualbox: ~ $ sudo systemctl habilita mongod
saeedraza@virtualbox: ~ $ sudo systemctl status mongod

Lanzar MongoDB

Después de la instalación, inicie rápidamente la carcasa MongoDB usando la consulta "Mongo". Cambie a la base de datos "Admin" para realizar los pasos de procedimiento.

saeedraza@virtualbox: ~ $ Mongo
MongoDB Shell Version V5.0.14
Conectando a: MongoDB: // 127.0.0.1: 27017/?compresores = discapacitado y gssapiserviceName = MongoDB
Sesión implícita: sesión "id": uuid ("34cc8e0f-b6b0-4191-adea-676411f66cf5")
Versión del servidor MongoDB: 6.0.3


Estamos creando un nuevo usuario con derechos de administrador utilizando la función createUser ().

> Usar admin
cambiado a administrador de DB
> DB.crear usuario(

... Usuario: "Saeed",
... PWD: "12345",
... Roles: [rol: "UserAdminanyDatabase", DB: "Admin", "ReadWriteAnyDatabase"]
…)
Usuario agregado con éxito:
"Usuario": "Saeed",
"Roles": [

"Rol": "Useradminanydatabase",
"DB": "Admin"
,
"ReadWriteAnydatabase"
]


Autorizó al usuario "Saeed" utilizando credenciales en la función "Auth" y mostró las bases de datos actualmente propiedad de MongoDB.

> DB.Auth ('Saeed', '12345')
1
> Mostrar dbs
Admin 0.000GB
Configuración 0.000GB
Local 0.000GB

Instale el controlador MongoDB para Golang

Abra la terminal en el código de Visual Studio y mueva dentro de la carpeta "Golang" en la que desea agregar sus archivos de código fuente. Ejecute la instrucción "GO Mod Init" con el nombre de la carpeta para crear un "GO.archivo mod ”. Cargue el controlador MongoDB para el idioma GO a través de la consulta "Go Get".

saeedraza@virtualbox: ~/golang $ go mod init golang


En algunos casos, se requiere cargar el controlador de formato BSON también para Golang para Golang.

saeedraza@virtualbox: ~/golang $ go go Go.mongodb.org/Mongo-Driver/BSON


Asegúrese de agregar los paquetes de extensión necesarios como "gopls" en el código de visual de estudio utilizando el panel de extensiones sin usar ninguna instrucción.


Junto con "goPls", el Golang podría requerir que la herramienta "DLV" se instale con seguridad.

Ejemplo de código de Golang

El archivo de código "principal.Go ”se ha iniciado con la importación de algunos paquetes útiles se utilizará en todo el código para la conexión. Se han realizado un total de 7 importaciones aquí. Después de importar los paquetes, creamos una nueva estructura llamada Mongofield con 4 miembros de datos de tipo JSON en él. 2 de estos datos son cadenas y 2 de ellos son enteros.

Después de esto, se ha declarado un tipo constante de "URI" variable con una dirección del cliente o debe agregar su dirección local de acuerdo con el nombre de usuario y la contraseña. Las funciones Main () comienzan con el uso de la función Connect () de Golang para conectarse con MongoDB a través de un objeto "Mongo". La función AppliactUri () tomará la variable "URI" como su argumento para aplicarse en la función Client () para que se pueda establecer una conexión a través de una dirección de host. El paquete de contexto ha estado desempeñando el papel principal para llamar a la función TODO () para solicitar una conexión. Si la conexión se estableció entre el código Visual Studio y el MongoDB con éxito, la señal retornada por el cliente se agregará a la variable "Cliente"; De lo contrario, el error se almacenará en la variable "err".

La instrucción "si" está aquí para mostrar los mensajes en consecuencia. Si la variable "err" obtuvo un valor que no sea "nil", la función println () desde el paquete de formato "fmt" el paquete imprimirá ese error en la pantalla de salida, el terminal. El paquete "OS" se utilizará para salir del programa si se produce el error. El paquete de contexto se utiliza nuevamente aquí para administrar el tiempo de espera para que la conexión se establezca a través de este programa. Para el valor de tiempo de espera particular "CTX", nuestro programa se ejecutará. Se creará una nueva colección "persona" junto con una nueva base de datos "nueva" en el cliente MongoDB a través de Golang. El println () mostrará el tipo de colección "c" utilizando la función "typeof" del paquete reflejar.

Se creó un registro "Rec" utilizando los miembros de datos de estructura de Mongofield que se inicializan aquí uno por uno. El tipo de registro se mostró y el registro "Rec" se insertará en el cliente MongoDB utilizando la función InsertOne con el objeto de recolección "C". La inserción exitosa conduce a una variable de "resultado" que contiene el valor de éxito, mientras que la variable "inserterr" mantendrá el valor de falla. La instrucción "if" se usa nuevamente para verificar y mostrar el error al insertar un registro solo si la variable "inserterr" se mantiene más que el valor "nulo". De lo contrario, la parte "más" de la instrucción mantendrá algunas declaraciones println () para mostrar el tipo de registro que se insertará, el ID de registro y el mensaje de éxito para la conexión y la inserción que ha tenido lugar. El código Golang ahora está completo.

paquete principal
importar (
"contexto"
"FMT"
"OS"
"reflejar"
"tiempo"
"ir.mongodb.org/Mongo-Driver/Mongo "
"ir.mongodb.org/Mongo-Driver/Mongo/Opciones "
)
Escriba Mongofield Struct
Nombre String 'JSON: "Field Str"'
String de correo electrónico 'JSON: "Field STR"'
Age int 'JSON: "Field int"'
Salario int 'json: "Field int"'

const uri = "mongodb: // usuario: contraseña@localhost: 27017/?maxpoolSize = 20 y W = mayoría "
func Main ()
cliente, err: = Mongo.Conectar (contexto.ToDo (), opciones.Cliente().Aplicati (URI))
Si err != nulo
fmt.Println ("Mongo.Connect () Error: ", err)
sistema operativo.Salir (1)

CTX, _: = contexto.Con TimeOut (contexto.Fondo (), 15*tiempo.Segundo)
c: = cliente.Base de datos ("nueva").Colección ("persona")
fmt.Println ("Tipo de colección:", reflejar.Typeof (c), "\ n")
Rec: = Mongofield
Nombre: "Edén",
Correo electrónico: "[email protected] ",
Edad: 45,
Salario: 50000
fmt.Println ("tipo de registro:", reflejar.Typeof (rec), "\ n")
resultado, inserterr: = c.InsertOne (CTX, Rec)
Si inserterr != nulo
fmt.Println ("Error de inserción:", inserterr)
sistema operativo.Salir (1)
demás
fmt.Println ("Tipo de resultado InsertOne:", reflejar.Typeof (resultado))
newid = resultado.Insertedid
fmt.Println ("ID de registro insertado:", NewID))
fmt.Println ("registros conectados e insertados con éxito!")


Guarde el código Golang y abra el terminal dentro de la carpeta Golang. Ahora, use la instrucción "Go" con la palabra clave "Ejecutar" para ejecutar el "principal.Archivo de código GO ". La depuración fue exitosa y la colección "persona" se ha generado con éxito en el MongoDB. La salida muestra el tipo de colección, el tipo de registro, el tipo de resultado y la "ID" de un registro.

saeedraza@virtualbox: ~/golang $ Go Run Main.ir
Tipo de colección: *Mongo.Recopilación
Tipo de registro: principal.Mongofield
Tipo de resultado insertone: *Mongo.InserToNeResult
ID de registro insertado: ObjectId ("63A8535AC97B4218230664B6")
Registros conectados e insertados con éxito.


Abra la brújula "MongoDB" al final y conéctese con su host local utilizando el "URI".


Después de moverse dentro de la "nueva" base de datos, tenemos la colección que se muestra "persona" en la sección "Documentos" junto con el registro que hemos agregado.

Conclusión

Esta guía ilustra el uso del idioma GO para agregar registros en el cliente MongoDB utilizando una herramienta de código de Visual Studio en el sistema Linux. Para esto, hemos instalado el MongoDB junto con el controlador MongoDB para "Golang" en el sistema. Usando un lenguaje de Golang, hemos creado un archivo "Go" en MongoDB y discutimos la variedad de paquetes y funciones de Golang para crear una conexión a MongoDB e insertar registros. Al final, hemos demostrado los resultados en la brújula de MongoDB que muestra que puede conectar cualquier herramienta de Golang a MongoDB.