Como conectar o MongoDB com Golang

Como conectar o MongoDB com Golang

Assim como o idioma C, o idioma Golang também é um idioma de código aberto que pode ser executado em muitas ferramentas em sistemas Windows e Linux/Unix para criar registros. Como C ++ e Java, podemos fazer uma conexão entre um sistema de clientes mongodb e a linguagem GO usando qualquer ferramenta de Golang. Para fazer isso, estaremos realizando várias etapas muito importantes e necessárias no Ubuntu 22.04 Utilizando a ferramenta de código do Visual Studio para um programa. Antes de fazer uma conexão com o MongoDB Compass, tendemos a instalar o código MongoDB e Visual Studio junto com "Go" e exigimos extensões no guia para ajudá -lo no idioma Go.

Instale o MongoDB

Baixamos o pacote "Deb" do servidor MongoDB em seu site oficial. O pacote "Deb" também pode ser executado no Ubuntu usando a ferramenta de comando "dpkg" no terminal.

Executou o arquivo do servidor MongoDB no terminal com direitos "sudo" e forneceu uma senha.

Saeedraza@VirtualBox: ~ $ sudo dpkg -i mongodb-org-server_6.0.3_AMD64.Deb


Se você achou o serviço MongoDB inativo no seu fim depois de tentar a instrução "SystemCTL" do Ubuntu para verificar o status, você também pode atualizá -lo. Para ativar o MongoDB, tente a instrução SystemCTL com as palavras -chave "Start" e "Ativar".

Saeedraza@VirtualBox: ~ $ sudo SystemCtl Start MongoD
Saeedraza@VirtualBox: ~ $ sudo SystemCtl Ativar MongoD
Saeedraza@VirtualBox: ~ $ sudo Systemctl Status MongoD

LANÇA MONGODB

Após a instalação, inicie rapidamente o shell do MongoDB usando a consulta "Mongo". Mude para o banco de dados "Admin" para executar as etapas de processo.

Saeedraza@VirtualBox: ~ $ MONGO
Versão do Shell MongoDB V5.0.14
Conectando -se a: MongoDB: // 127.0.0.1: 27017/?compressores = desabilitados & gsssapiservicename = mongodb
Sessão implícita: sessão "id": uuid ("34cc8e0f-b6b0-4191-adea-676411f66cf5")
Versão do servidor MongoDB: 6.0.3


Estamos criando um novo usuário com direitos de administrador usando a função createUser ().

> Use Admin
Mudou para Admin DB
> dB.CreateUser (

… Usuário: "Saeed",
… PWD: "12345",
… Funções: [função: "userAdminanyDatabase", db: "admin", "readWriteanyDatabase"]
…)
Usuário adicionado com sucesso:
"Usuário": "Saeed",
"Funções": [

"Role": "UserAdMinanyDatabase",
"DB": "Admin"
,
"ReadWriteanyDatabase"
]


Autorizou o usuário "Saeed" usando credenciais na função "Auth" e exibiu os bancos de dados atualmente de propriedade do MongoDBB.

> dB.auth ('saeed', '12345')
1
> Mostre DBS
admin 0.000 GB
Config 0.000 GB
Local 0.000 GB

Instale o driver MongoDB para Golang

Abra o terminal no código do Visual Studio e mova -se dentro da pasta "Golang", na qual você deseja adicionar seus arquivos de código -fonte. Execute a instrução “Go Mod Init” com o nome da pasta para criar um “GO.arquivo mod ”. Carregue o driver do MongoDB para o idioma Go através da consulta "Go Get".

Saeedraza@VirtualBox: ~/Golang $ Go Mod Init Golang


Em alguns casos, é necessário carregar o driver do formato BSON para Golang também.

Saeedraza@VirtualBox: ~/Golang $ Go Get Go.MongoDB.Org/Mongo-Driver/BSON


Certifique -se de adicionar os pacotes de extensão necessários como "Gopls" no código do Visual Studio usando o painel de extensões sem usar nenhuma instrução.


Juntamente com "Gopls", o Golang pode exigir que a ferramenta "DLV" seja instalada com certeza.

Exemplo de código de Golang

O arquivo de código “Principal.GO ”foi iniciado com a importação de alguns pacotes úteis serão utilizados em todo o código para conexão. Um total de 7 importações foram feitas aqui. Depois de importar os pacotes, criamos uma nova estrutura chamada Mongofield com 4 membros de dados do tipo JSON. 2 desses membros de dados são strings e 2 deles são inteiros.

Depois disso, um tipo constante de variável "URI" foi declarado com um endereço do cliente ou você deve adicionar seu endereço de localhost, de acordo com o nome de usuário e a senha. As funções Main () começam com o uso da função Connect () de Golang para se conectar com o MongoDB através de um objeto "Mongo". A função Appluri () estará adotando a variável "URI" como seu argumento a ser aplicado na função client () para que uma conexão possa ser estabelecida através de um endereço de host. O pacote de contexto tem desempenhado o papel principal de chamar a função TODO () para solicitar uma conexão. Se a conexão foi estabelecida entre o código do Visual Studio e o MongoDB com sucesso, o sinal de retorno do cliente será adicionado à variável "cliente"; Caso contrário, o erro será armazenado na variável "err".

A declaração "se" está aqui para exibir as mensagens de acordo. Se a variável "err" obtiver um valor diferente de "nil", a função println () do pacote de formato "FMT" será imprimindo esse erro na tela de saída, o terminal. O pacote "OS" será usado para sair do programa se o erro ocorrer. O pacote de contexto é novamente utilizado aqui para gerenciar o tempo limite para que a conexão seja estabelecida através deste programa. Para o valor de tempo limite específico "CTX", nosso programa estará executando. Uma nova coleção "Pessoa", juntamente com um novo banco de dados "novo", será criado no cliente MongoDB através de Golang. O println () exibirá o tipo de coleção "c" usando a função "typeof" do pacote refletir.

Um registro “Rec” foi criado usando os membros da estrutura Mongofield que são inicializados aqui um por um. O tipo de registro foi exibido e o registro "REC" será inserido no mongodb do cliente usando a função Insertone com o objeto de coleção "C". A inserção bem -sucedida leva a uma variável de "resultado" que mantém o valor do sucesso, enquanto a variável "inserterr" estará mantendo o valor de falha. A instrução "se" é usada novamente para verificar e exibir o erro na inserção de um registro apenas se a variável "inserterr" for mantida diferente do valor "nil". Caso contrário, a parte "else" da declaração realizará algumas instruções println () para exibir o tipo de um registro a ser inserido, o ID do registro e a mensagem de sucesso para a conexão e a inserção que ocorreu. O código de Golang agora está completo.

Pacote principal
importação (
"contexto"
"FMT"
"OS"
"Reflita"
"tempo"
"ir.MongoDB.Org/Mongo-Driver/Mongo "
"ir.MongoDB.Org/Mongo-Driver/Mongo/Opções "
)
Tipo Mongofield Struct
Nome String 'JSON: "Field Str"'
String de email 'JSON: "Field Str"'
Idade int 'json: "campo int"'
Salário int 'json: "campo int"'

const Uri = “MongoDB: // Usuário: senha@localhost: 27017/?maxpoolsize = 20 & w = maioria ”
func main ()
Cliente, Err: = Mongo.Conectar (contexto.TODO (), opções.Cliente().APPLURI (URI))
se err != nil
fmt.Println ("Mongo.Connect () Erro: ", Err)
OS.Saída (1)

ctx, _: = contexto.Withtimeout (contexto.Background (), 15*tempo.Segundo)
C: = cliente.Banco de dados ("novo").Coleção ("Pessoa")
fmt.Println ("Tipo de coleção:", reflita.Typeof (c), "\ n")
Rec: = Mongofield
Nome: "Eden",
Email: "[email protected] ",
Idade: 45,
Salário: 50000
fmt.Println ("Tipo de registro:", reflita.Typeof (rec), "\ n")
resultado, inserterr: = c.Insertone (ctx, rec)
se inserterr != nil
fmt.Println ("erro de inserto:", inserterr)
OS.Saída (1)
outro
fmt.Println ("Tipo de resultado da insertona:", reflita.Typeof (resultado))
newid = resultado.InserdId
fmt.Println ("ID de registro inserido:", newid))
fmt.Println ("Records conectados e inseridos com sucesso!")


Salve o código de Golang e abra o terminal na pasta Golang. Agora, use a instrução "Go" com a palavra -chave "Run" para executar o "Principal.Arquivo de código Go ”. A depuração foi bem -sucedida e a coleção "pessoa" foi gerada com sucesso no MongoDB. A saída está mostrando o tipo de coleção, tipo de registro, tipo de resultado e o "id" de um registro.

Saeedraza@VirtualBox: ~/Golang $ Go Run Main.ir
Tipo de coleção: *Mongo.Coleção
Tipo de registro: principal.Mongofield
Insertone Result Type: *Mongo.InsertoneResult
ID do registro inserido: objectId (“63A8535AC97B4218230664B6”)
Records conectados e inseridos com sucesso.


Abra a bússola "MongoDB" no seu fim e conecte -se com o host local usando o "URI".


Depois de nos mover no "novo" banco de dados, temos a coleção "pessoa" exibida na seção "Documentos" junto com o registro que adicionamos.

Conclusão

Este guia ilustra o uso da linguagem Go para adicionar registros no cliente MongoDB usando uma ferramenta de código do Visual Studio no sistema Linux. Para isso, instalamos o MongoDB junto com o driver do MongoDB para "Golang" no sistema. Usando uma língua de Golang, criamos um arquivo "Go" em MongoDB e discutimos a variedade de pacotes e funções de Golang para criar uma conexão com MongoDB e Inserir Records. No final, demonstramos os resultados na bússola do MongoDB, que mostra que você pode conectar qualquer ferramenta de Golang a MongoDBB.