Visão geral
Nesta página, você pode saber como atualizar seu driver para uma nova versão. Esta página também inclui as alterações que você deve fazer no seu aplicativo para atualizar seu driver sem perder a funcionalidade, se aplicável.
Como fazer a atualização
Antes de atualizar, execute as seguintes ações:
Certifique-se de que a nova versão do driver é compatível com a versão do MongoDB Server à qual seu aplicação se conecta e com a versão do Node.js em que o aplicação é executado. Consulte a página Tabelas de compatibilidade de drivers para obter essas informações.
Resolva quaisquer alterações importantes entre a versão do driver que seu aplicação usa agora e a versão de atualização planejada na seção Alterações Importantes deste guia. Para saber mais sobre as alterações de compatibilidade da versão do MongoDB Server , consulte a seção Alterações de compatibilidade da versão do servidor .
Dica
Você pode minimizar a quantidade de alterações que deve fazer no aplicação ao atualizar as versões do driver usando a API estável.
Para atualizar sua versão do driver, execute o seguinte comando no diretório do aplicativo:
npm install mongodb@6.17
Para atualizar para outra versão do driver, substitua as informações após o símbolo @ pelo seu número da versão desejada. Para mais informações sobre o comando npm install, consulte a documentação npm do npm-install.
Mudanças de última hora
Uma alteração significativa é uma modificação em uma convenção ou comportamento em uma versão específica do driver que pode impedir que seu aplicativo funcione conforme o esperado.
As alterações interruptivas nesta seção são categorizadas pelas versões principais que as introduziram. Ao atualizar as versões do driver, resolva todas as alterações interruptivas entre sua versão atual e a versão de atualização planejada. Por exemplo, se você estiver atualizando o driver de v3.x para v5.x, resolva todas as alterações interruptivas listadas em v4.0 e v5.0.
Versão 6.0 Alterações interruptivas
A versão 6.0 do driver Node.js requer Node.js v16.20.1 ou posterior.
O driver remove o suporte ao comando auxiliar
addUser(). Em vez disso, use o comando createUser do MongoDB Shell.O driver remove o suporte para a operação
collStats. Em vez disso, use o operador de agregação $collStats.O driver remove todas as opções obsoletas com prefixo
ssle a opçãotlsCertificateFileno tipoMongoClientOptions. Crie um objetoSecureContextou defina as opções pré-fixadas dotlsna sua instância doMongoClientOptions.O driver lê arquivos definidos nas opções de conexão
tlsCAFileetlsCertificateKeyFileao chamar o métodoMongoClient.connect(), não quando você cria a instânciaMongoClient.O drvier remove as opções de conexão
keepAliveekeepAliveInitialDelay. O valor dekeepAliveé definido permanentemente comotrue, e o valor dekeepAliveInitialDelayé definido como 300.000 milissegundos (300 segundos).O método
Db.command()aceita somente opções que não estão relacionadas a um comando específico. Para saber mais sobre essas opções, consulte a seção Opções de comando do aba Executar um comando.Se você adicionar
mongodb-client-encryptioncomo uma dependência, o número da versão principal deverá corresponder ao do driver Node.js. Por exemplo, o driver Node.js v6.x.x requer a v6.x.x. domongodb-client-encryption.Os métodos de criptografia automática agora estão no driver Node.js. É necessário importar esses métodos do driver em vez de
mongodb-client-encryption.Foi removido o construtor
ObjectIdque aceitava strings de 12 caracteres.Métodos
abortTransaction()ecommitTransaction()modificados para retornarnullem vez dos resultados brutos do comando.Auxiliares da opção de conexão removidos que aceitaram valores diferentes de
trueoufalsecomo booleanos. Você deve fornecer valorestrueoufalsena connection string ou para o construtor MongoClient.Foi removido o construtor do tipo de BSON
Binaryque aceitava uma string.O método
Binary.write()não aceita mais uma string para gravar no objeto binário BSON.A API ClientEncryption retorna promessas em vez de chamadas de resposta.
O pacote do
socks, que habilita o suporte de proxy SOCKS5, é uma dependência opcional por pares. Você deve instalar o pacote para habilitar o SOCKS5 no seu aplicativo. Para saber mais, consulte Habilitar suporte de proxy SOCKS5.Se você iniciar uma sessão em um cliente e, em seguida, passar essa sessão para um cliente diferente, o driver lançará um erro quando você executar qualquer operação na sessão.
A opção
includeResultMetadatapara métodos de operações compostas éfalsepor padrão. Consulte a seção Métodos integrados do guia Operações Compostas para mais informações.O método
withSession()retorna o valor que a função fornecida retorna. Nas versões anteriores do driver, este método retornaundefined. O métodowithTransaction()retorna o valor que a chamada de resposta retorna. Em versões anteriores do driver, esse método retorna a resposta do comando do servidor , que varia dependendo da versão do MongoDB Server ou do tipo ao qual o driver se conecta. Para saber mais sobre transações, consulte os guias Convenient Transaction API e API Principal e o guia Transações.Aumentou a versão mínima de dependência opcional
kerberospara 2.0.1 e removeu o suporte para a versão 1.x.Aumentou a versão mínima de dependência opcional
zstdpara 1.1.0.
alteração interruptiva na versão 5.0
O driver não é mais compatível com o Node.js v12 ou anterior. Se quiser usar esta versão do driver, você deverá usar o Node.js v14.20.1 ou posterior.
O driver remove o suporte para chamadas de resposta para oferecer uma API baseada em promessa. A lista a seguir fornece algumas estratégias para os usuários de chamadas de resposta adotarem esta versão:
Migrar para a API baseada em promessa (recomendado)
Use a API baseada em promessa e
util.callbackifyAdicione
mongodb-legacypara continuar usando chamadas de resposta
Para obter mais informações sobre essas estratégias, consulte o changelog v5.0.
O driver remove o suporte para os métodos auxiliares de
Collection.insert(),Collection.update()eCollection.remove(). A lista a seguir fornece instruções sobre como substituir a funcionalidade dos métodos removidos:Migrar de
Collection.insert()parainsertOne()ouinsertMany()Migrar de
Collection.update()paraupdateOne()ouupdateMany()Migrar de
Collection.remove()paradeleteOne()oudeleteMany()
O driver já não inclui módulos do AWS SDK por padrão.
O driver já não importa automaticamente o pacote
bson-ext.O driver remove o suporte para bibliotecas personalizadas de
Promise. O driver não oferece mais suporte à opçãopromiseLibrarydoMongoCliente à exportaçãoPromise.setque permite especificar uma biblioteca dePromisepersonalizada.O driver remove o suporte para o auxiliar
Collection.mapReduce().O tipo
BulkWriteResultnão tem mais a propriedaderesultpublicamente enumerável.Os seguintes tipos, opções e métodos foram removidos:
BulkResult.lastOp()MétodoopTimepropriedade deBulkResultBulkWriteOptions.keepGoingopçãoWriteConcernError.err()MétodoAddUserOptions.digestPasswordopçãoKerberos
gssapiCanonicalizeHostNameoptionslaveOkopções e métodos removidos para oferecersecondaryOkObjectIDtipo removido em favor deObjectIdAsyncIteratorinterface removida em favor deAsyncGenerator
Alterações significativas na versão 4.0
O driver não é mais compatível com o Node.js v12.8 ou anterior. Se quiser usar esta versão do driver, você deverá usar o Node.js v12.9 ou posterior.
Cursoros tipos já não se estendemReadablediretamente.Você não pode utilizar uma instância do
ChangeStreamcomo um iterador após utilizá-la como umEventEmitter. Você também não pode fazer o contrário – utilizar uma instância doEventEmittercomo um iterador após utilizá-lo como umChangeStream.Os métodos a seguir não aceitam mais um parâmetro de chamada de resposta:
Collection.find()Collection.aggregate()Db.aggregate()
O valor-padrão da opção de conexão
maxPoolSizeagora é100.O driver não é mais compatível com a opção
gssapiServiceNamedo Kerberos. Em vez disso, useauthMechanismProperties.SERVICE_NAME.O driver já não aceita tipos não boolean, como
0ou1, para opções boolean.O tipo
db.collectionnão aceita mais chamada de resposta.O tipo
Dbnão é mais umEventEmitter. Você pode ouvir qualquer evento diretamente da instânciaMongoClient.O driver remove o suporte para o auxiliar
Collection.group().O driver não inclui mais a API
GridStoreobsoleta.
Para mais informações sobre estas alterações, consulte o registro de alterações na v4.0.
Alterações na compatibilidade da versão do servidor
Uma alteração de compatibilidade de versão do servidor é uma modificação no driver que descontinua o suporte para um conjunto de versões do Servidor MongoDB.
O driver interrompe o suporte para uma versão do Servidor MongoDB após atingir o fim da vida útil (EOL).
Para saber mais sobre o suporte MongoDB para produtos EOL, consulte a Política de Suporte Legado.
Versão 4.2: mudanças no suporte à versão do servidor
O driver v4.2 remove a compatibilidade com o MongoDB Server v3.4 e anterior. Para usar o driver v4.2, seu MongoDB Server deve ser v3.6 ou posterior. Para saber como atualizar seu MongoDB Server, consulte Notas da versão no manual do MongoDB Server.