Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js
/

Notas de versão

Descubra as novidades de cada versão:

  • Versão 6.9

  • Versão 6.8

  • Versão 6.7

  • Versão 6.6

  • Versão 6.5

  • Versão 6.4

  • Versão 6.3

  • Versão 6.2

  • Versão 6.1

  • Versão 6.0

  • 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 e ChangeStream . Ao usar uma versão compatível do Node.js , você pode implementar o gerenciamento explícito de recursos usando o método cursor.stream() e a classe GridFSDownloadStream .

    Para saber como usar o gerenciamento explícito de recursos, consulte as notas de versão 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 ECMAScript no GitHub.

  • Se você estiver usando o Node.js 18.13 ou posterior, poderá passar as opções autoSelectFamily e autoSelectFamilyTimeout para o construtor MongoClient . Quando a opção autoSelectFamily é true, o driver seleciona automaticamente entre uma conexão IPv4 ou IPv6 . A opção autoSelectFamilyTimeout 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ção allowPartialTrustChain . Esta opção controla o sinalizador X509_V_FLAG_PARTIAL_CHAIN OpenSSL.

  • O ConnectionCheckedOutEvent e o ConnectionCheckFailedEvent agora incluem uma propriedade durationMS . 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 pacote mongodb-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 autoEncryption.extraOptions de. Essa alteração ajuda a evitar bugs de poluição global de protótipos relacionados a essas opções. Para obter 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() e bulkWrite() aceitam entradas ReadonlyArray .

  • 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 em error.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ância BSON Binary para AutoEncryptionOptions.

  • No Typescript, a classe BulkOperationBase relata a propriedade de getter length.

  • O tipo MongoWriteConcernError agora preserva o código original de nível superior em MongoWriteConcernError.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ção async/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étodo cursor.map() antes de chamar o método toArray() .

  • Corrige o uso misto do método cursor.next() com sintaxe for await .

  • Adiciona a opção enableUtf8Validation ao desserializar BSON, que foi removido inadvertidamente no driver do Node.js v6.8.

  • Adiciona a propriedade durationMS à classe ConnectionReadyEvent . Essa propriedade representa o tempo entre o evento de criação da conexão e quando o ConnectionReadyEvent é acionado.

Para saber mais sobre esta versão, consulte as Notas da versão v6.9.0 no GitHub.

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 tipo Buffer e string.

  • 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 como true, 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 requer mongodb-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 mongodb pacote agora contém um arquivo de assinaturamongodb-X.Y.Z.tgz.sig destacado,, para o pacote NPM. Essa alteração se aplica a todas as versões principais e de patch para as 5 versões.x 6 e.x do driver. Para verificar a assinatura do pacote , siga as instruções na seção Integridade da versão do arquivo README.md no repositório GitHub do driver.

Para saber mais sobre esta versão, consulte as Notas da versão v6.8.0 no GitHub.

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 como true fazia com que a função interna compareTopologyVersion gerasse um erro.

Para saber mais sobre esta versão, consulte as Notas da versão v6.7.0 no GitHub.

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 e dependencyName à classe MongoMissingDependencyError . 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 à classe ServerDescription. Esta propriedade contém o tempo mínimo de ida e volta nos últimos 10 batimentos cardíacos.

  • Adiciona o método toJSON() à classe TopologyDescription. Embora você possa usar esse método para stringificar objetos TopologyDescription em JSON, recomendamos usar o método util.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() e Collection.indexInformation() no Typescript.

  • Remove o suporte das opções readConcern e writeConcern do método Collection.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, como findOneAndUpdate(), em uma coleção com um esquema limitado.

  • O driver lança um MongoTransactionError somente se você fornecer um ReadPreferenceMode diferente de primary 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ção full.

  • Os métodos Collection.indexInformation(), Collection.indexes() e Db.indexInformation() têm um tipo de retorno de IndexDescriptionCompact | 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 campo signature como obrigatório no TypeScript.

Para saber mais sobre essa versão, consulte a Destaques do lançamento v6.6.0 no GitHub.

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 e TXT 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 documento MongoServerError .

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

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 BSON, consulte as notas de versão para BSON 6.3.0 e BSON...640

  • 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 usando Filter<Schema> em vez de Document, 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 comando bulkWrite . O driver ignora a validação de $addToSet quando você estende seus tipos de Document ou any ou usa propriedades de qualquer tipo.

  • Corrige a duração da pulsação do evento ServerHeartbeatSucceeded e ServerHeartbeatFailed 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.

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 de auto (padrão), poll ou stream. 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 do MongoClientOptions ou como uma opção de connection string. O exemplo a seguir mostra como criar um cliente com a opção definida como stream:

    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 e aliases de GridFS. Para armazenar o tipo de conteúdo e os nomes alternativos de um arquivo, adicione os campos contentType e aliases ao documento metadata.

Para saber mais sobre esta versão, consulte Destaques da versão v6.3.0.

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:

    Captura de tela do terminal que mostra uma impressão em cores

    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 propriedade result.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.

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étodo Decimal128.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 MONGODB-AWS autenticação do. 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 de mecanismos de autenticação.

  • Corrige um problema de vazamento de memória causado por chamadas recursivas para o método next() do tipo ChangeStream.

Para saber mais sobre esta versão, consulte Destaques da versão v6.1.0.

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 tipo ConnectionPoolCreatedEvent 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 e tlsCertificateKeyFile quando você chama o método MongoClient.connect(), não quando cria uma instância MongoClient.

  • Remoção das opções de conexão keepAlive e keepAliveInitialDelay. O valor de keepAlive é definido permanentemente como true, e o valor de keepAliveInitialDelay é 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.

Voltar

Referência

Nesta página