Página inicial do Docs → Desenvolver aplicações → MongoDB Drivers → Driver GO
NOVIDADES
Nesta página
Dica
Notas de versão
Para saber mais sobre alterações e atualizações entre versões, você pode ler as notas de versão publicado com o código-fonte do driver.
Descubra as novidades de cada versão:
Novidades em 1.15
O 1.15 A versão do driver Go inclui as seguintes melhorias e correções:
A rotatividade de conexão pode ser mitigada definindo um tempo limite para todo o cliente, especificando a
timeoutMS
opção de conexão ou chamando o SetTimeout() função. Quando o tempo limite é definido, o driver tenta reutilizar uma conexão após o tempo limite de uma operação e espera até um segundo para verificar se a conexão pode ser reutilizada antes de fechá-la.Os eventos do pool de conexões incluem um campo
Duration
para medir a duração do checkout e o tempo total necessário para estabelecer uma conexão.
Novidades em 1.14
O 1.14 A versão do driver Go inclui as seguintes melhorias e correções:
Go versões anteriores a 1.18 não são mais suportados.
No caso de um tempo limite de pulsação, as operações em andamento são canceladas previamente.
As connection strings que incluem o prefixo
"mongodb+srv://"
podem conter letras maiúsculas no nome do host SRV.
Novidades em 1.13
O 1.13 A versão do driver Go inclui as seguintes melhorias e correções:
Registro para seleção de servidor e SDAM. Para saber mais sobre registro, consulte a documentação Registro de registro.
Métodos no tipo
Collection
que permitem a você gerenciar índices de pesquisa programaticamente.Os eventos
event.CommandStartedEvent
eevent.CommandFinishedEvent
retornam o campoDatabaseName
. Este campo também está incluído nos análogos de registro de comandos.Em uma topologia fragmentada, ao selecionar um servidor para tentar novamente uma query malsucedida, o driver exclui o servidor usado para a tentativa inicial. Em vez disso, se houver mais de uma instância
mongos
elegível, o driver selecionará uma aleatoriamente. As instâncias não íntegras são automaticamente excluídas da seleção.O Streaming SDAM é desabilitado por padrão no AWS Lambda e plataformas semelhantes de função como serviço (FaaS). Você pode habilitar o monitoramento usando a opção
serverMonitoringMode
de URI .
Novidades em 1.12.1
O 1.12 A versão do driver Go inclui as seguintes melhorias e correções:
O driver desafixa conexões ao encerrar uma sessão. Isso evita o vazamento de conexões quando um usuário executa uma transação enquanto está conectado a um balancer de carga.
O driver não lança um erro de tempo de execução quando você desordena um tipo
bson.RawValue
vazio com um tipo inválido ou ordena um ponteironil
de uma instânciaReadConcern
.Definir
options.LogComponentAll
como o componente de log resulta corretamente na publicação de logs em todos os componentes.
Novidades em 1.12
Importante
Aviso de depreciação
Os métodos
mongo.NewClient()
eclient.Connect()
estão obsoletos. Você pode criar um cliente e conectar-se em uma chamada usando o métodomongo.Connect()
.
Novos recursos do 1. A versão do driver Go do 12 inclui:
Queryable Encryption
Esta versão do driver adiciona suporte para Queryable Encryption (QE). Para saber mais sobre os requisitos para usar o recurso QE, consulte a Queryable Encryption Driver Compatibility Table.
O método ClientEncryption.CreateEncryptedCollection()
cria automaticamente chaves de criptografia de dados quando você cria uma nova coleção criptografada. Para saber como usar o recurso QE, consulte o Início rápido no manual do servidor.
Interface de registro
Agora você pode registrar eventos de gerenciamento de conexão e execução de comandos usando a interface de registro LogSink
.
Para saber mais, consulte o guia Noções básicas de registro .
Opções Adicionais de Organização de BSON
Esta versão do driver adiciona recursos ao pacote options
para especificar como o driver ordena e desordena o BSON.
O exemplo a seguir mostra como definir as opções de BSON no seu Client
. As opções especificam os seguintes comportamentos:
O driver volta para as marcações de estrutura
json
se as marcações de estruturabson
estiverem ausentes.O driver ordena
nil
tipos de mapa Go como documentos BSON vazios.O driver ordena
nil
tipos de fatia Go como arrays BSON vazias.
bsonOpts := &options.BSONOptions{ UseJSONStructTags: true, NilMapAsEmpty: true, NilSliceAsEmpty: true, } options.Client().SetBSONOptions(bsonOpts)
Para obter um exemplo completo de como especificar e implementar o BSONOptions
tipo ,consulte a documentação da API.
Especificação simplificada de write concern
Esta versão do driver simplifica a API WriteConcern
. Para saber mais sobre as alterações, consulte Write Concern.
Alterações adicionais
Suporte para autenticação com roles AWS IAM no EKS.
Adição do método
Cursor.SetBatchSize()
para permitir a especificação do tamanho dos lotes obtidos ao iterar por meio de um cursor.Adição do método
UnmarshalValue()
para permitir a organização de valores BSON ordenados com o métodoMarshalValue()
.
Novidades em 1.11
Importante
Atualize para a versão 1.11.9 ou posterior
Versões 1.11.0 a 1.11.2 do driver foram recolhidos devido a um bug que pode causar comportamento indefinido ao ler o campo Raw
em tipos de erro de banco de dados, como CommandError
e WriteException
.
Versão 1.11.8 do driver foi recolhido porque contém incorretamente alterações destinadas a 1.12.1.
Atualize para a versão 1.11.9 ou posterior se você estiver usando uma versão retraída do driver.
Novos recursos do 1. A versão do driver Go do 11 inclui:
Remoção de suporte para as versões 3 do MongoDB.5 e mais antigo.
Remoção de suporte para as versões Go 1.12 e mais antigo.
Melhorias na API e no comportamento de
Timeout
, incluindo:Lógica de repetição modificada para maior resiliência do aplicativo.
Auxiliar de erro
mongo.IsTimeout
estendido para detectar mais erros de tempo limite.Novos métodos GridFS que usam contextos em vez de usar
SetReadDeadline
eSetWriteDeadline
.
Alocações de memória reduzidas durante a execução da operação.
Correção do bug de sondagem SRV que impedia alterações nos registros SRV quando a connection string associada do MongoDB incluía um nome de usuário e senha.
Suporte para contas de serviçoGCP ao usar os Serviços de gerenciamento de chaves do GCP.
Melhorias na limpeza de recursos do lado do servidor ao usar as funções
Cursor.All
eSession.WithTransaction
.SERVICE_HOST
Especificação do parâmetro de autenticação Kerberos habilitada com a opção de string de conexãoauthMechanismProperties
.Saída corrigida do método
bson.Raw.String()
para o tipo JSON estendido para carimbos de data/hora quando o documento BSON contém um campo de carimbo de data/hora UTC.Resolução de conflitos ao tentar novamente leituras com read concern
"available"
ou"linearizable"
.
Novidades em 1.10
Importante
Atualize para a versão 1.10.1 ou superior
O 1.10.1 O driver Go corrige um bug que pode causar corrupção de dados ao girar Chaves de criptografia de dados criptografadas com uma Chave mestre do cliente hospedada no Google Cloud Key Management Service ou Azure Key Vault.
Novos recursos do 1. A versão do driver Go do 10 inclui:
Compatibilidade total com MongoDB 6.0.
Suporte para novos recursos relacionados à criptografia Queryable Encryption, incluindo novas opções para criptografia automática e manual.
Suporte para a nova Biblioteca compartilhada de criptografia automática, que substitui o processo
mongocryptd
. A biblioteca compartilhada requer MongoDB v6.0 Enterprise ou posterior elibmongocrypt
1.5.0 ou posterior.suporte à criação de índice clusterizado .
Uma nova API e
ClientEncryption
operações de entidade para gerenciamento de chave de criptografia.Uma opção de cliente
Timeout
para definir tempos limite de contexto padrão para cada operação enviada por esse cliente.Um patch para dados padrão para
primitive.M
ouprimitive.D
ao decodificar tipos vazios.Suporte para codificação de tipos de chave de mapa atípicos para dados que podem ser desordenados em uma representação textual de si mesmos.
Otimizações de desempenho, incluindo:
Solicitações de documentos completos aprimoradas para atualizações antes e depois em eventos de fluxo de alterações.
Geração aprimorada de PRN e UUID .
Reduziu o consumo de memória ao comprimir mensagens de fio.
Suporte para solução de problemas encontrados com frequência.
Novidades em 1.9
Novos recursos do 1. A versão do driver Go do 9 inclui:
Mitigação aprimorada da tempestade de conexão.
Custom
opções para change-stream e operações agregadas.Let
opção na maioria dos comandos CRUD que especifica parâmetros para uso em uma expressão agregada.Let
deve ser um documento que mapeia os nomes de parâmetros para valores que são expressões constantes ou fechadas sem referências aos campos do documento. MongoDB v5.0 ou posterior é necessário.Novas funções de construtor que criam instâncias
Cursor
eSingleResult
a partir de documentos BSON desejáveis e não nulos.
Novidades em 1.8
Novos recursos do 1. A versão do driver Go do 8 inclui:
Compatibilidade total com MongoDB 5.1.
Suporte para KMIP como provedor de KMS para CSFLE.
Pool de conexões de driver redesenhado para tempos limite de operação
Context
baixos e para reduzir a rotatividade de conexão. As mudanças de comportamento incluem:A criação de uma nova conexão expira em
connectTimeoutMS
.No máximo, duas novas conexões podem ser estabelecidas ao mesmo tempo.
Remoção de linguagem opressiva e desnecessariamente de gênero na documentação, no código, nos testes e nos testes de especificações do driver Go.
Novidades em 1.7
Importante
Atualize para a versão 1.7.2 ou superior
O 1.7.2 O driver Go contém uma correção de bug para uma corrida de dados que pode ocorrer entre a criação e a verificação de conexões quando minPoolSize > 0
.
Novos recursos do 1. A versão do driver Go do 7 inclui:
Total compatibilidade com o MongoDB 5.0.
Suporte para a read concern
"snapshot"
fora das transações de vários documentos para determinadas operações de leitura.Mensagens de erro
WriteException
eBulkWriteException
aprimoradas para validação de esquema relatada pelo campoWriteError.Details
.
Novidades em 1.6
Importante
Atualize para a versão 1.6.2 ou superior
O 1.6.2 O driver Go contém uma correção de bug para uma corrida de dados que pode ocorrer entre a criação e a verificação de conexões quando minPoolSize > 0
.
Novos recursos do 1. A versão do driver Go do 6 inclui:
Suporte para a API estável do MongoDB. Para obter mais informações, consulte o Guia de API estável.
Suporte para conexões com qualquer serviço MongoDB que seja executado atrás de um balancer de carga.
Suporte para a criação de coleções de séries temporais. Para obter mais informações, consulte o Guia de coleções de séries temporais.
Let
opção para expressões agregadas.
Novidades em 1.5
Novos recursos do 1. A versão do driver Go do 5 inclui:
Suporte para serviços de gerenciamento de chaves do Azure e do GCP com criptografia no nível do campo do lado do cliente.
Nova API de erros para detectar erros de chave duplicada, tempos limite e erros de rede.
Monitoramento de servidor para monitorar alterações em uma implantação do MongoDB.
Erros para evitar comportamentos inesperados em mapas que contêm múltiplas chaves sendo usadas como uma opção de dica, como uma opção de classificação ou para criação de índice.
Novidades em 1.4
Novos recursos do 1. A versão do driver Go do 4 inclui:
Compatibilidade total com MongoDB 4.4.
Suporte para verificação OCSP grampeada e não grampeada.
Nova opção de URI
tlsDisableOCSPEndpointCheck=true
para desabilitar o envio de solicitações HTTP se o respondente OCSP não estiver acessível a partir do driver e não houver resposta grampeada.Contexto adicional para erros encontrados durante a desordenação de BSON.
Funções
Unwrap
adequadas para vários tipos de erro de driver.
Novidades em 1.3
Novos recursos do 1. A versão do driver Go do 3 inclui:
mgocompat
pacote que exporta um registro BSON compatível comglobalsign/mgo/bson
, que pode ser usado chamando o métodoClientOptions.SetRegistry
.RegisterTypeEncoder
e métodosRegisterHookEncoder
, que substituem o método obsoletoRegisterEncoder
. Uma alteração correspondente foi feita para substituirRegisterDecoder
.
Novidades na versão 1.2
Novos recursos do 1. A versão do driver Go do 2 inclui:
Suporte para CSFLE.
bson.MarshalValue
função, que ordena tipos Go para BSON.StringCodec
, que permite que campos não string sejam decodificados em um campo String em uma estrutura.IntCodec
,UIntCodec
,BoolCodec
eFloatCodec
adicionados aomgocompat
para permitir que os codecs convertam entre números e booleanos.
Novidades em 1.1
Novos recursos do 1. A versão do driver Go do 1 inclui:
Compatibilidade total com MongoDB 4.2.
Implementação redesenhada do driver de nível inferior para melhorar a capacidade de manutenção e o desempenho.
Especificações de monitoramento e pool de conexões para monitorar vários eventos do pool de conexões e conexões com maior eficiência.
Novidades em 1.0
Esta versão não adiciona novos recursos.