NOVIDADES
Nesta página
Descubra as novidades de cada versão:
Novidades no 6.15
A versão do driver Node.js v6.15 inclui os seguintes recursos:
Adiciona suporte para fornecer credenciais AWS personalizadas ao configurar autenticação ou In-criptografia em execução. Você deve fornecer a assinatura de função personalizada no seguinte formulário:
() => Promise<AWS.Credentials> Você também pode especificar cadeias de fornecedores no AWS SDK, o que permite personalizar suas opções. Para ver exemplos de como fornecer credenciais personalizadas, consulte as Notas de versão v6.15.0 no GitHub.
Corrige um bug que fazia com que um
MongoClient
configurado paraOIDC
comAbortSignal
fosse abortado no cursor quando o cliente se autenticasse novamente.Corrige um bug que causava uma rejeitada não tratada a ser lançada quando um
timeoutms
expira antes de uma operação atingir o processo de seleção do servidor .Corrige um bug causado pelo fechamento de um change stream durante o processamento de um evento de alteração . Esse bug causava um erro em potencial ao rejeitar uma promessa interna que representava a "próxima" alteração.
Para saber mais sobre esta versão, consulte as Notas da versão v6.15.0 no GitHub.
Novidades no 6.14
A versão do driver Node.js v6.14 inclui os seguintes recursos:
Adiciona suporte para o estágio de agregação
$lookup
em coleções criptografadas. Você deve atualizar seu pacotemongodb-client-encryption
para v6.3.0 ou posterior para usar esse recurso.Usa a implementação do driver do método
isUint8Array()
para evitar a importação do pacoteutil/types
.Reverte a compatibilidade de versão de
@aws-sdk/credential-providers
para v3.188.0.
Para saber mais sobre esta versão, consulte as Notas da versão v6.14.0 no GitHub.
Novidades no 6.13
A versão do driver Node.js v6.13 inclui os seguintes recursos:
Adiciona um novo registrador padronizado para permitir informações sobre as operações do banco de dados sem alterações de código. Você pode habilitar e configurar o registrador por meio de variáveis de ambiente, como mostrado no exemplo a seguir:
env MONGODB_LOG_ALL=debug node server.mjs Para saber mais sobre registro, consulte o Guia de Registro.
Melhora o desempenho do monitoramento de comandos removendo cópias profundas de objetos de comando e resposta. A modificação dos valores de comando e resposta pode levar a um comportamento indefinido.
Adiciona um recurso experimental de sinal de cancelamento. Você pode passar o comando
signal
para os seguintes métodos para interromper a execução do método quando o sinal for acionado:collection.find()
collection.findOne()
collection.aggregate()
collection.countDocuments()
db.listCollections()
db.command()
Abortar um sinal fecha uma conexão, o que pode causar o restabelecimento desnecessário da conexão.
Para evitar possíveis erros de tempo limite de DNS, o driver captura e tenta novamente pesquisas de DNS ao resolver connection strings
mongodb+srv://
.MongoClient.close()
também fecha quaisquer cursores associados.Você pode invocar
MongoClient.close()
simultaneamente, mas não recomendamos fazer isso se puder ser evitado.Corrige um problema que fazia com que a autenticação
MONGODB-OIDC
não fosse autenticada corretamente se a negociação incluir autenticação especulativa.
Para saber mais sobre esta versão, consulte as Notas da versão v6.13.0 no GitHub.
Novidades no 6.12
A versão do driver Node.js v6.12 inclui os seguintes recursos:
Adiciona suporte para v2.0 do algoritmo de compressão
zstd
. Para obter mais informações sobrezstd
v2.0, consulte aszstd
Notas de versão no Github.Atualiza o pacote
bson
para v6.10.1. Para obter mais informações sobre esta versão, consulte as v6.10.1 Notas de versão para obson
pacote no Github.O driver preenche o campo
ServerDescription.error
com um tipo e uma mensagem de erro mais específicos ao marcar um membro primário do conjunto de réplicas obsoleto.O driver lê dados de soquete com um fluxo no modo de objeto em vez do modo de buffer. Isso evita erros de análise de mensagens em casos raros causados por agrupamento de dados impreciso.
Se o driver encontrar um erro ao se conectar a um proxy de meias5, ele não envolverá mais o erro de meias5 em um
MongoNetworkError
. Isso impede que o driver encapsular umMongoNetworkError
em outroMongoNetworkError
.
Para saber mais sobre esta versão, consulte as Notas da versão v6.12.0 no GitHub.
Novidades no 6.11
A versão do driver Node.js v6.11 inclui os seguintes recursos:
Adiciona suporte para Node.js v22.
Adiciona o recurso de tempo limite de operações do lado do cliente (CSOT). Você pode usar o CSOT para aplicar um tempo limite único a todas as etapas necessárias para concluir uma operação do lado do servidor, incluindo seleção do servidor , verificação da conexão, serialização e execução do lado do servidor. Para saber mais, consulte o guia Limitar o tempo de execução do servidor.
Observação
Recurso experimental
O recurso CSOT é experimental e pode mudar em futuras versões de drivers.
Adiciona suporte de autenticação OIDC para ambientes Kubernetes. Para saber mais sobre esse recurso, consulte a seção MONGODB-OIDC do guia Mecanismos de autenticação empresarial.
Para usar o OIDC para autenticar a partir de um ambiente Kubernetes, defina a opção de conexão
authMechanismProperties
comoENVIRONMENT:k8s
em sua string de conexão. Você pode usar esse recurso ao se conectar a um ambiente em execução no Elastic Kubernetes Service da Amazon, no Google Kubernetes Engine ou no Azure Kubernetes Service.O pacote
bson
adiciona suporte para dados vetoriais binários. Para saber mais sobre esse recurso, consulte as v6.10.0 Release Notes para obson
pacote no Github.O driver emite
ConnectionClosedEvents
apósPoolClearedEvents
.
Para saber mais sobre esta versão, consulte as Notas da versão v6.11.0 no GitHub.
Novidades no 6.10
A versão do driver Node.js v6.10 é a primeira versão oficial a oferecer suporte a todos os recursos do MongoDB Server 8.0 e inclui as seguintes melhorias e correções:
Remove o suporte para o MongoDB Server 3.6.
Adiciona suporte à API de gravação em massa do MongoDB Server 8.0, que oferece suporte a operações de gravação em massa em vários bancos de dados e collections em uma única chamada.
Permite nomes de host SRV com menos de três partes separadas por
.
caracteres. Por exemplo, o driver agora suporta nomes de host comomongodb+srv://mongodb.local
.Suporta
maxTimeMS
CRUD a opção optime explain para recuperar um valor preciso para comandos CRUD para descrever o optime . As opções de explicação para operações de localização e agregação estão obsoletas.
Para saber mais sobre esta versão, consulte as Notas da versão v6.10.0 no GitHub.
Novidades no 6.9
O suporte para o MongoDB Server 3.6 está obsoleto e será removido em uma futura versão do driver.
O driver suporta nativamente o gerenciamento explícito de recursos para cursores e os objetos
MongoClient
,ClientSession
eChangeStream
. Ao usar uma versão compatível do Node.js , você pode implementar o gerenciamento explícito de recursos usando o métodocursor.stream()
e a classeGridFSDownloadStream
.Para saber como usar o gerenciamento explícito de recursos, consulte as Notas de versão do v6.9.0 no Github. Para obter mais informações sobre o gerenciamento explícito de recursos, consulte a proposta de gerenciamento explícito de recursos da ECMAScript no Github.
Se você estiver usando o Node.js 18.13 ou posterior, poderá passar as opções
autoSelectFamily
eautoSelectFamilyTimeout
para o construtorMongoClient
. Quando a opçãoautoSelectFamily
étrue
, o driver seleciona automaticamente entre uma conexão IPv4 ou IPv6 . A opçãoautoSelectFamilyTimeout
especifica o tempo limite, em milissegundos, para o driver selecionar a família de conexões.O seguinte exemplo de código mostra como usar estas opções:
const client = new MongoClient(uri, { autoSelectFamily: true, autoSelectFamilyTimeout: 100 }); O construtor do
MongoClient
aceita a opçãoallowPartialTrustChain
. Esta opção controla o sinalizadorX509_V_FLAG_PARTIAL_CHAIN
OpenSSL.O
ConnectionCheckedOutEvent
e oConnectionCheckFailedEvent
agora incluem uma propriedadedurationMS
. Essa propriedade indica o tempo decorrido entre o início e o fim de uma operação de checkout de conexão.Se você estiver usando o Node.js 18 ou posterior, o driver ignorará a opção
cryptoCallbacks
e usará callbacks definidos em C++ , melhorando significativamente o desempenho da criptografia. Esta alteração está disponível na v6.1.0 versão do pacotemongodb-client-encryption
.Para aumentar a segurança, as opções que especificam o caminho de geração e os argumentos para
mongocryptd
devem ser propriedades próprias deautoEncryption.extraOptions
. Essa alteração ajuda a evitar bugs de poluição global de protótipos relacionados a essas opções. Para mais informações sobre propriedades próprias, consulte Object.hasOwn() no MDN.Adiciona suporte oficial para queries de intervalo de Queryable Encryption (QE). Para usar esse recurso, seu aplicativo deve usar
mongodb-client-encryption
v6.1.0 ou posterior e deve se conectar ao MongoDB Server 8.0 ou posterior. Para obter mais informações sobre queries de intervalo de QE, consulte Queryable Encryption no manual do MongoDB Server .Os métodos
insertMany()
ebulkWrite()
aceitam entradasReadonlyArray
.O driver tenta novamente gravações com base no código de nível superior, encontrado em
error.code
, em vez do código aninhado emerror.result.writeConcernError.code
. Isso corrige um problema em clusters fragmentados que executam versões MongoDB Server anteriores a 4.4.A propriedade
LocalKMSProviderConfiguration.key
aceita uma instânciaBSON
Binary
paraAutoEncryptionOptions
.No Typescript, a classe
BulkOperationBase
relata a propriedade de getterlength
.O tipo
MongoWriteConcernError
agora preserva o código original de nível superior emMongoWriteConcernError.code
.O método
cursor.toArray()
vazia o lote atual de documentos na array antes de chamar o iterador assíncrono novamente. Esta alteração evita os atrasos associados à execuçãoasync
/await
e melhora o desempenho em até 5%, em média. Essa otimização não se aplica se você fornecer uma transformação para o métodocursor.map()
antes de chamar o métodotoArray()
.Corrige o uso misto do método
cursor.next()
com sintaxefor await
.Adiciona a opção
enableUtf8Validation
ao desserializar BSON, que foi removido inadvertidamente no driver do Node.js v6.8.Adiciona a propriedade
durationMS
à classeConnectionReadyEvent
. Essa propriedade representa o tempo entre o evento de criação da conexão e quando oConnectionReadyEvent
é acionado.
Para saber mais sobre esta versão, consulte as Notas da versão v6.9.0 no GitHub.
Novidades no 6.8
A versão do driver Node.js v6.8 inclui os seguintes recursos:
Corrige um bug em que um provedor local de KMS aceitava uma instância
BSON Binary
no tempo de execução, mas o compilador Typescript permitia apenas valores do tipoBuffer
estring
.O erro
ReadConcernMajorityNotAvailableYet
agora é um erro de leitura que pode ser repetido.Agora você pode associar um nome e fornecer várias chaves para provedores de KMS. Este recurso requer
mongodb-client-encryption
v6.0.1 ou posterior. Você não pode usar provedores KMS nomeados se seu aplicação usar o recurso de atualização automática do provedor KMS.O seguinte exemplo de código mostra como configurar um objeto
ClientEncryption
com várias chaves Amazon Web Services :const clientEncryption = new ClientEncryption(keyVaultClient, { 'aws:key1': { accessKeyId: ..., secretAccessKey: ... }, 'aws:key2': { accessKeyId: ..., secretAccessKey: ... }, clientEncryption.createDataKey('aws:key-1', { ... }); Ao criar uma chave de dados KMIP, agora você pode especificar a opção
delegated
. Se essa opção estiver definida comotrue
, o fornecedor de KMIP executará a criptografia e a descriptografia da chave de dados localmente, garantindo que a chave de criptografia nunca saia do servidor KMIP. Este recurso requermongodb-client-encryption
v6.0.1 ou posterior.O seguinte exemplo de código mostra como especificar esta opção:
clientEncryption.createDataKey('kmip', { masterKey: { delegated: true } } ); O driver agora decodifica respostas BSON à medida que o cursor itera sobre elas, em vez de decodificar toda a resposta BSON quando ela é recebida.
A versão do Github para o pacote
mongodb
agora contém um arquivo de assinatura destacado,mongodb-X.Y.Z.tgz.sig
, para o pacote npm . Essa alteração se aplica a todas as versões principais e de patch para as versões 5.x e 6.x do driver. Para verificar a assinatura do pacote , siga as instruções na seção Integridade da liberação do README.md no Github repositório do driver.
Para saber mais sobre esta versão, consulte as Notas da versão v6.8.0 no GitHub.
Novidades no 6.7
A versão do driver Node.js v6.7 inclui os seguintes recursos:
Adiciona suporte ao mecanismo de autenticação
MONGODB-OIDC
quando conectado ao MongoDB Server v7.0 e posterior. O driver oferece suporte à autenticação com autenticação de máquina do Azure, autenticação de máquina do GCP, autenticação de retorno de chamada e facetas de autenticação de retorno de chamada de interação humana.Corrige um problema em que a definição do sinalizador
useBigInt64
comotrue
fazia com que a função internacompareTopologyVersion
gerasse um erro.
Para saber mais sobre esta versão, consulte as Notas da versão v6.7.0 no GitHub.
Novidades no 6.6
A versão do driver Node.js v6.6 inclui os seguintes recursos:
Atualiza para usar BSON 6.7.0. Para obter detalhes sobre os novos recursos do BSON, consulte as notas da versão do BSON 6.5.0, BSON 6.6.0 e BSON 6.7.0.
Adiciona o método
addStage()
à API de aggregation fluída. Você pode usar esse método para adicionar estágios de pipeline de agregação individualmente, conforme mostrado no exemplo a seguir:const documents = await users.aggregate().addStage({ $project: { name: true } }).toArray(); Adiciona os campos
cause
edependencyName
à classeMongoMissingDependencyError
. Você pode usar esses campos para determinar programaticamente se um pacote está faltando ou por que um pacote não foi carregado.Adiciona a propriedade
minRoundTripTime
à classeServerDescription
. Esta propriedade contém o tempo mínimo de ida e volta nos últimos 10 batimentos cardíacos.Adiciona o método
toJSON()
à classeTopologyDescription
. Embora você possa usar esse método para stringificar objetosTopologyDescription
em JSON, recomendamos usar o métodoutil.inspect()
do nó, pois ele lida adequadamente com todos os tipos usados em JavaScript e no driver.Adiciona suporte a opções de cursor para os métodos
Collection.indexExists()
,Collection.indexes()
eCollection.indexInformation()
no Typescript.Remove o suporte das opções
readConcern
ewriteConcern
do métodoCollection.listSearchIndexes()
.listSearchIndexes()
é um método específico do Atlas e os índices de pesquisa do Atlas não oferecem suporte a essas opções.Redefine a propriedade
ServerDescription.roundTripTime
como uma média móvel. Anteriormente, era uma média ponderada da duração da pulsação observada mais recentemente e da duração anterior.É possível especificar o tipo de um índice de pesquisa ao criar o índice, conforme mostrado no exemplo a seguir:
const indexName = await collection.createSearchIndex({ name: 'my-vector-search-index', type: 'vectorSearch', definition: { mappings: { dynamic: false } } }); A propriedade
UpdateFilter.$currentDate
não lança mais um erro quando você a passa para um método composto, comofindOneAndUpdate()
, em uma coleção com um esquema limitado.O driver lança um
MongoTransactionError
somente se você fornecer umReadPreferenceMode
diferente deprimary
e, em seguida, tentar executar um comando que envolve uma operação de leitura.O tipo de dados da propriedade
TopologyDescription.error
éMongoError
.O método
Collection.indexExists()
não é mais compatível com a opçãofull
.Os métodos
Collection.indexInformation()
,Collection.indexes()
eDb.indexInformation()
têm um tipo de retorno deIndexDescriptionCompact | IndexDescriptionInfo[]
no TypeScript.Ao recuperar as credenciais do AWS KMS (Sistema de gerenciamento de chaves), o driver não gera mais um erro ao receber uma chave de acesso que inclui um carimbo de data e hora de expiração.
A interface
ClusterTime
não define mais o camposignature
como obrigatório no TypeScript.
Para saber mais sobre essa versão, consulte a Destaques do lançamento v6.6.0 no GitHub.
Novidades no 6.5
A versão do driver Node.js v6.5 inclui os seguintes recursos:
Atualiza as operações de gravação em massa para usar a classe
pkFactory
para geração de ID de documento.
Aviso
Se você especificou anteriormente uma instância de pkFactory
para lidar com gravações em massa, os campos _id
dos documentos inseridos usando gravações em massa podem ser inconsistentes com o comportamento dessa versão.
Corrige a preferência de leitura enviada com operações de leitura para
primaryPreferred
quando o driver está conectado a um nó secundário no conjunto de réplicas.Corrige um vazamento de memória na criação de promessa para operações de soquete.
Reduz a latência da conexão inicial ao se conectar a uma lista de sementes de DNS consultando os registros
SRV
eTXT
em paralelo.Adiciona rastreamento aos metadados do contêiner ao executar um cliente no Kubernetes ou em um ambiente de contêiner no campo
client.env.container
do documento de handshake.Adiciona o documento de erro original retornado pelo servidor ao campo
errorResponse
do documentoMongoServerError
.Descontinua a interface
CloseOptions
que não é usada pelo driver.
Para saber mais sobre essa versão, consulte a Destaques do lançamento v6.5.0 no GitHub.
Novidades no 6.4
A versão do driver Node.js v6.4 inclui os seguintes recursos:
Quando várias instâncias
mongos
estão disponíveis, servidores diferentes são usados para tentativas de repetição de leitura e gravação.Armazena credenciais da AWS em cache no nível do cliente, em vez de para cada autenticação.
Atualiza para usar BSON 6.4.0. Para obter detalhes sobre os novos recursos do BSON, consulte as notas de versão do BSON 6.3.0 e BSON 6.4.0.
As operações de leitura que resultam em um erro
ExceededTimeLimit
são repetidas.Corrige um problema de solicitação relacionado a soquetes TLS e provedores KMS.
Corrige o preenchimento básico64 no comando
saslContinue
para permitir a autenticação mongosh.Digita
countDocuments
usandoFilter<Schema>
em vez deDocument
, o que permite o preenchimento automático e ajuda a evitar problemas de digitação posteriores.Corrige um erro de tipo na opção
$addToSet
do comandobulkWrite
. O driver ignora a validação de$addToSet
quando você estende seus tipos deDocument
ouany
ou usa propriedades de qualquer tipo.Corrige a duração da pulsação do evento
ServerHeartbeatSucceeded
eServerHeartbeatFailed
para que não inclua o tempo para criar o soquete.Emite erros de forma adequada dos fluxos de transformação do cursor, em vez de absorvê-los.
Torna os tokens de sessão da AWS opcionais quando um nome de usuário e uma senha são fornecidos. Permite também que o SDK do AWS lide com as solicitações de autenticação.
Para saber mais sobre essa versão, consulte a Destaques do lançamento v6.4.0 no GitHub.
6.3: quais as novidades
A versão v6.3 do driver Node.js inclui as seguintes funcionalidades:
Adiciona a opção do cliente
serverMonitoringMode
para controlar o comportamento da conexão de monitoramento entre os nós em uma topologia. Esta opção obtém um valor deauto
(padrão),poll
oustream
. Para saber mais, consulte a entrada para esta opção no guia Opções de Conexão.Você pode configurar a opção
serverMonitoringMode
em uma instância doMongoClientOptions
ou como uma opção de connection string. O exemplo a seguir mostra como criar um cliente com a opção definida comostream
:new MongoClient('<connection string>', { serverMonitoringMode: 'stream' }); Corrige um vazamento de conexão quando a opção de cliente do
serverApi
está configurada.Descontinua as opções
contentType
ealiases
de GridFS. Para armazenar o tipo de conteúdo e os nomes alternativos de um arquivo, adicione os camposcontentType
ealiases
ao documentometadata
.
Para saber mais sobre esta versão, consulte Destaques da versão v6.3.0.
Novidades no 6.2
A versão v6.2 do driver do Node.js inclui as seguintes funcionalidades:
Atualiza a versão do pacote
bson
para 6.2.0 e inclui uma visualização em cores de tipos, conforme a imagem abaixo:Para saber mais, consulte as Notas da versão do bson v6.2.0.
Garante que a propriedade
result.insertedIds
de um tipo de erro de gravação em massa contém os valores_id
de documentos inseridos corretamente. Em versões anteriores, quando uma operação de gravação em massa rejeitava uma operação de inserção, a propriedaderesult.insertedIds
continha os valores_id
para todas as tentativas de inserção.Fecha a sessão implícita criada ao executar o método
findOne()
em uma coleção de séries temporais, independentemente do resultado da operação.Permite a criação de coleções com nomes que começam ou terminam com o caractere
.
. Esta alteração alinha o comportamento de verificação de nome do banco de dados e da collection do driver com o servidor.
Para saber mais sobre esta versão, consulte Destaques da versão v6.2.0.
Novidades no 6.1
A versão v6.1 do driver do Node.js inclui as seguintes funcionalidades:
Atualiza a versão do pacote
bson
para 6.1.0 para expor o métodoDecimal128.fromStringWithRounding()
. Para saber mais, consulte as v6.1.0 Notas da versão do bson .Detecta variáveis de ambiente para configurações de região quando você autentica usando a ação AssumeRoleWithWebIdentity do IAM com autenticação do
MONGODB-AWS
. Para instruir o driver a usar suas opções de região, você deve definir as duas variáveis de ambiente a seguir:AWS_STS_REGIONAL_ENDPOINTS
AWS_REGION
Para saber como definir as configurações de região ao usar o mecanismo de autenticação
MONGODB-AWS
, consulte a guia Web Identity Token na seção MONGODB-AWS do guia Mecanismos de autenticação.Corrige um problema de vazamento de memória causado por chamadas recursivas para o método
next()
do tipoChangeStream
.
Para saber mais sobre esta versão, consulte Destaques da versão v6.1.0.
6.0: quais as novidades
Aviso
Alterações significativas na v6.0
Esta versão do driver apresenta alterações interruptivas. Para obter uma lista dessas alterações, consulte a seção alterações interruptivas da versão 6.0 no guia de atualização.
A versão v6.0 do driver Node.js inclui as seguintes funcionalidades:
Importante
Aviso de depreciação
Todas as opções com o prefixo ssl
no tipo MongoClientOptions
estão obsoletas. A opção tlsCertificateFile
também está obsoleta.
Em vez disso, você deve armazenar seus certificados em um objeto SecureContext
ou definir as opções com prefixo tls
na instância MongoClientOptions
. Para saber mais, veja Como habilitar TLS em uma conexão.
Remoção de suporte para o comando auxiliar do
addUser()
. Em vez disso, use o comando createUser do MongoDB Shell.Remoção do suporte para a operação
collStats
. Em vez disso, use o operador de agregação $collStats.O campo
options
do tipoConnectionPoolCreatedEvent
contém apenas os seguintes campos, que são as opções de pool não padrão:maxConnecting
maxPoolSize
minPoolSize
maxIdleTimeMS
waitQueueTimeoutMS
O driver lê de forma assíncrona os arquivos definidos nas opções de conexão
tlsCAFile
etlsCertificateKeyFile
quando você chama o métodoMongoClient.connect()
, não quando cria uma instânciaMongoClient
.Remoção das opções de conexão
keepAlive
ekeepAliveInitialDelay
. O valor dekeepAlive
é definido permanentemente comotrue
, e o valor dekeepAliveInitialDelay
é definido como 300.000 milissegundos (300 segundos).Para saber como definir as configurações de manutenção de atividade no nível do sistema, consulte O tempo de manutenção de atividade do TCP afeta implantações MongoDB? Item de perguntas frequentes no manual do servidor.
Remove as seguintes opções para o método
Db.command()
:willRetryWrite
omitReadPreference
writeConcern
explain
readConcern
collation
maxTimeMS
comment
retryWrites
dbName
authdb
noResponse
Embora você não possa passar estas opções para o método
Db.command()
, você ainda pode defini-las no documento de comando. Para saber mais, consulte a seção Opções de comando do guia Executar um comando.
Para saber mais sobre esta versão, consulte Destaques da versão v6.0.0.