Menu Docs

Página inicial do DocsDesenvolver aplicaçõesMongoDB DriversDriver GO

NOVIDADES

Nesta página

  • Novidades em 1.15
  • Novidades em 1.14
  • Novidades em 1.13
  • Novidades em 1.12.1
  • Novidades em 1.12
  • Novidades em 1.11
  • Novidades em 1.10
  • Novidades em 1.9
  • Novidades em 1.8
  • Novidades em 1.7
  • Novidades em 1.6
  • Novidades em 1.5
  • Novidades em 1.4
  • Novidades em 1.3
  • Novidades na versão 1.2
  • Novidades em 1.1
  • Novidades em 1.0

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:

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.

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.

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 e event.CommandFinishedEvent retornam o campo DatabaseName . 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 .

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 ponteiro nil de uma instância ReadConcern .

  • Definir options.LogComponentAll como o componente de log resulta corretamente na publicação de logs em todos os componentes.

Importante

Aviso de depreciação

  • Os métodos mongo.NewClient() e client.Connect() estão obsoletos. Você pode criar um cliente e conectar-se em uma chamada usando o método mongo.Connect() .

Novos recursos do 1. A versão do driver Go do 12 inclui:

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.

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 .

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 estrutura bson 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.

Esta versão do driver simplifica a API WriteConcern . Para saber mais sobre as alterações, consulte Write Concern.

  • 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étodo MarshalValue() .

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 e SetWriteDeadline.

  • 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 e Session.WithTransaction .

  • SERVICE_HOST Especificação do parâmetro de autenticação Kerberos habilitada com a opção de string de conexão authMechanismProperties .

  • 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".

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 e libmongocrypt 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 ou primitive.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.

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 e SingleResult a partir de documentos BSON desejáveis e não nulos.

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.

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 e BulkWriteException aprimoradas para validação de esquema relatada pelo campo WriteError.Details .

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.

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.

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.

Novos recursos do 1. A versão do driver Go do 3 inclui:

  • mgocompat pacote que exporta um registro BSON compatível com globalsign/mgo/bson, que pode ser usado chamando o método ClientOptions.SetRegistry .

  • RegisterTypeEncoder e métodos RegisterHookEncoder , que substituem o método obsoleto RegisterEncoder . Uma alteração correspondente foi feita para substituir RegisterDecoder.

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 e FloatCodec adicionados ao mgocompat para permitir que os codecs convertam entre números e booleanos.

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.

Esta versão não adiciona novos recursos.

← Referência rápida