Como conectar MongoDB com Golang

Como Conectar Mongodb Com Golang



Assim como a linguagem C, a linguagem Golang também é uma linguagem de código aberto que pode ser executada em várias ferramentas nos sistemas Windows e Linux/Unix para criar registros. Assim como C++ e Java, podemos fazer uma conexão entre um sistema cliente MongoDB e a linguagem Go usando qualquer ferramenta golang. Para fazer isso, executaremos 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 MongoDB e o Visual Studio Code junto com “go” e as extensões necessárias no guia para ajudá-lo na linguagem Go.

Instalar o MongoDB

Baixamos o pacote “deb” do servidor MongoDB de 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 -eu mongodb-org-server_6.0.3_amd64.deb


Se você encontrou o serviço MongoDB inativo 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 “enable”.

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

Iniciar o MongoDB

Após a instalação, inicie rapidamente o shell MongoDb usando a consulta “mongo”. Alterne para o banco de dados “admin” para executar as etapas de procedimento.

saeedraza@virtualbox:~$ mongo
MongoDB shell versão v5.0.14
conectando-se a: mongodb: // 127.0.0.1: 27017 / ? compressores = desabilitado & gssapiServiceName =mongodb
Sessão implícita: sessão { 'Eu iria' : 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().

> usar administrador
mudou para db admin
> db.createUser (
... {
... do utilizador: 'Saied' ,
... pwd: '12345' ,
... papéis: [ { Função: 'userAdminAnyDatabase' , db: 'administrador' } , 'readWriteAnyDatabase' ]

... } )
Usuário adicionado com sucesso: {
'do utilizador' : 'Saied' ,
'papéis' : [
{
'Função' : 'userAdminAnyDatabase' ,
'db' : 'administrador'
} ,
'readWriteAnyDatabase'
]
}


Autorizou o usuário “Saeed” usando credenciais na função “auth” e exibiu os bancos de dados atualmente pertencentes ao MongoDB.

> db.auth ( 'Saeed' , '12345' )
1
> mostrar dbs
administrador   0,000 GB
configuração  0,000 GB
local 0,000 GB

Instale o driver do MongoDB para Golang

Abra o terminal no Visual Studio Code e mova 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 arquivo “go.mod”. Carregue o driver MongoDB para a linguagem Go por meio da consulta “go get”.

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


Em alguns casos, também é necessário carregar o driver MongoDB no formato bson para Golang.

saeedraza@virtualbox:~/Golang$ vá buscar go.mongodb.org / motorista mongo / bson


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


Junto com “gopls”, o Golang pode exigir que a ferramenta “dlv” seja instalada com certeza.

Exemplo de Código Indo

O arquivo de código “main.go” foi iniciado com a importação de alguns pacotes úteis que 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 de cliente ou você deve adicionar seu endereço 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() do Golang para se conectar com o MongoDB através de um objeto “mongo”. A função ApplyURI() tomará a variável “uri” como seu argumento para aplicar 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 for estabelecida entre o código do Visual Studio e o MongoDB com sucesso, o sinal retornado pelo cliente será adicionado à variável “client”; caso contrário, o erro será armazenado na variável “err”.

A instrução “if” está aqui para exibir as mensagens de acordo. Se a variável “err” tiver um valor diferente de “nil”, a função Println() do pacote de formato “fmt” imprimirá 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 timeout da conexão a ser estabelecida através deste programa. Para o valor de tempo limite específico “ctx”, nosso programa estará em execução. Uma nova coleção “Person” junto com um novo banco de dados “New” serão criados no cliente MongoDB através do Golang. O Println() estará exibindo o tipo de uma coleção “c” usando a função “TypeOf” do pacote reflect.

Um registro “Rec” foi criado usando os membros de dados da estrutura MongoField que são inicializados aqui um por um. O tipo de registro foi exibido e o registro “Rec” será inserido no cliente MongoDB usando a função insertOne com o objeto de coleção “c”. A inserção bem-sucedida leva a uma variável “resultado” contendo o valor de sucesso, enquanto a variável “insertErr” conterá o valor de falha. A instrução “if” é usada novamente para verificar e exibir o erro na inserção de um registro somente se a variável “insertErr” for diferente do valor “nil”. Caso contrário, a parte “else” da instrução conterá algumas instruções Println() para exibir o tipo de registro a ser inserido, o ID do registro e a mensagem de sucesso para a conexão e inserção que ocorreu. O código Golang agora está completo.

pacote principal
importar (
'contexto'
'fmt'
'os'
'refletir'
'Tempo'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
tipo MongoField struct {
Nome   string ` json: 'Campo Str' `
E-mail  string ` json: 'Campo Str' `
Idade    int ` json: 'Campo Int' `
Salário int ` json: 'Campo Int' `
}
const uri = “mongodb: // Senha do usuário @ host local: 27017 / ? maxPoolSize = vinte & no =maioria”
função principal ( ) {
cliente, err := mongo.Connect ( contexto.TODOS ( ) ,opções.Cliente ( ) .ApplyURI ( tipo ) )
E se errar ! = zero {
fmt.Println ( 'Erro Mongo.connect():' , errar )
os. Sair ( 1 )
}
ctx, _ := context.WithTimeout ( contexto.Fundo ( ) , quinze * tempo.segundo )
c := cliente.Database ( 'Novo' ) .Coleção ( 'Pessoa' )
fmt.Println ( 'Tipo de coleção: ' , reflita.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
Nome: 'ÉDEN' ,
O email: 'eden@gmail.com' ,
Era: Quatro cinco ,
Salário: 50000 }
fmt.Println ( 'Tipo de registro: ' , reflita.TypeOf ( gravando ) , ' \n ' )
resultado, insertErr := c.InsertOne ( ctx, Rec )
E se inserirErr ! = zero {
fmt.Println ( 'Erro do InsertOne: ' , inserirErr )
os. Sair ( 1 )
} outro {
fmt.Println ( 'Tipo de resultado InsertOne: ' , reflita.TypeOf ( resultado ) )
newID = resultado.InsertedID
fmt.Println ( 'ID do registro inserido: ' , novo ID ) )
fmt.Println ( 'Registros conectados e inseridos com sucesso!' )
} }


Salve o código Golang e abra o terminal dentro da pasta Golang. Agora, use a instrução “go” com a palavra-chave “run” para executar o arquivo de código “main.go”. A depuração foi realizada com sucesso e a coleção “Pessoa” foi gerada com sucesso no MongoDB. A saída mostra o tipo de coleção, tipo de registro, tipo de resultado e o “ID” de um registro.

saeedraza @ caixa virtual:~ / Golang$ Go Run Main.go
Tipo de coleção: * mongo.Collection
Tipo de registro: main.MongoField
Tipo de resultado InsertOne: * mongo.InsertOneResult
ID do registro inserido: ObjectID ( “63a8535ac97b4218230664b6” )
Registros conectados e inseridos com sucesso.


Abra a bússola “MongoDB” do seu lado e conecte-se ao host local usando o “URI”.


Depois de mover dentro do banco de dados “Novo”, 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 Visual Studio Code no sistema Linux. Para isso, instalamos o mongodb junto com o driver mongodb para “golang” no sistema. Usando uma linguagem Golang, criamos um arquivo “go” no MongoDB e discutimos a variedade de pacotes e funções do Golang para criar uma conexão com o MongoDB e inserir registros. No final, demonstramos os resultados na bússola do MongoDB, que mostra que você pode conectar qualquer ferramenta Golang ao MongoDB.