Saiba mais sobre os novos recursos, melhorias e correções introduzidas nas seguintes versões da biblioteca PHP do MongoDB :
Novidades no 2.1
Importante
Mudanças de última hora
A versão da biblioteca PHP v2.1 introduz as seguintes alterações significativas:
Elimina o suporte para o MongoDB Server 4.0. A versão mínima suportada do MongoDB Server é 4.2.
A versão da biblioteca PHP v2.1 inclui as seguintes funcionalidades, melhorias e correções:
Adiciona compatibilidade com PHP 8.5.
Adiciona uma API de gravação em massa do cliente para executar operações de gravação em vários bancos de dados e coleções na mesma chamada. Para saber mais sobre esse recurso, consulte a seção Gravação em massa do cliente do guia Operações de gravação em massa.
Novidades no 2.0
Importante
Mudanças de última hora
A versão da biblioteca PHP v2.0 introduz as seguintes alterações significativas:
Os métodos a seguir retornam
voidem vez da resposta bruta do comando:MongoDB\Client:dropDatabase()MongoDB\Collection:drop(),dropIndex(),dropIndexes(),dropSearchIndex(),rename()MongoDB\Database:createCollection(),drop(),dropCollection(),renameCollection()
Para saber mais sobre as alterações significativas nesta versão, consulte a seção Alterações significativas da versão 2.0 no guia de atualizações da biblioteca de versões.
A versão da biblioteca PHP v2.0 inclui as seguintes alterações e remoções de API:
Adiciona os seguintes métodos:
MongoDB\Client::getDatabase(): alias paraMongoDB\Client::selectDatabase()MongoDB\Client::getCollection(): alias paraMongoDB\Client::selectCollection()MongoDB\Database::getCollection(): alias paraMongoDB\Database::selectCollection()
Os métodos
Client::selectCollection(),Client::selectDatabase()eDatabase::selectCollection()serão descontinuados e substituídos por esses novos métodos em uma futura versão do driver, portanto, considere alterar os usos em seu aplicação.Modifica os métodos
MongoDB\Database::aggregate()eMongoDB\Collection::aggregate()para que eles possam aceitar uma instânciaPipelinecomo o parâmetro$pipeline. Para visualizar exemplos que usam essa construção, consulte a seção Construtor de aggregation do guia Agregação.Substitui dicas de tipo
CursorporCursorInterfacepara melhor extensibilidade e compatibilidade.Remove campos obsoletos em tipos de GridFS .
A biblioteca não calcula o campo
md5quando um arquivo é carregado no GridFS. Se o seu aplicação exigir um resumo do arquivo, você deverá implementar esse processo fora do GridFS e armazenar os valores em metadados.Os campos
contentTypeealiasesnão são mais armazenados na coleçãofilesdo GridFS . Se seu aplicação exigir essas informações, você deverá armazená-las em metadados. Para saber mais sobre o GridFS, consulte o guia Armazenar arquivos grandes.
Remove as seguintes opções obsoletas para operações de localização:
maxScanmodifiersoplogReplaysnapshot
Para saber mais sobre as opções compatíveis com operações de localização, consulte a
MongoDB\Collection::find()ouMongoDB\Collection::findOne()documentação da API.Remove o método
IndexInfo::isGeoHaystack()obsoleto.Remove as opções
autoIndexIdeflagsobsoletas do métodoMongoDB\Database::createCollection().Elimina o suporte para a funcionalidade de map-reduce removendo os seguintes métodos e tipos obsoletos:
MongoDB\Collection::mapReduce()MongoDB\MapReduceResult
Você pode reescrever operações de map-reduce usando agregação pipeline stages , como
$groupe$merge. Para saber mais, consulte Map-reduce to aggregation pipeline no manual do MongoDB Server.Remove as seguintes implementações do
Iterator:MongoDB\Model\CollectionInfoIteratorMongoDB\Model\DatabaseInfoIteratorMongoDB\Model\IndexInfoIterator
Os métodos
MongoDB\Client::listDatabases(),MongoDB\Database::listCollections()eMongoDB\Collection::listIndexes()retornam uma instância geral traversableIteratorque fornece os resultados correspondentes.
Novidades no 1.21
A versão da biblioteca PHP v1.21 inclui as seguintes funcionalidades, melhorias e correções:
Apresenta o Aggregation Builder, uma API para criar agregação pipelines de uma forma mais segura de tipo. Para saber mais e ver exemplos, consulte a seção Construtor de aggregation do guia Agregação.
Adiciona os seguintes métodos:
MongoDB\Client::getDatabase(): alias paraMongoDB\Client::selectDatabase()MongoDB\Database::getCollection(): alias paraMongoDB\Database::selectCollection()MongoDB\Database::getCollection(): alias paraMongoDB\Database::selectCollection()
Os métodos
Client::selectCollection(),Client::selectDatabase()eDatabase::selectCollection()serão descontinuados e substituídos por esses novos métodos em uma futura versão do driver, portanto, considere alterar os usos em seu aplicação.Adiciona argumentos nomeados para as
SearchStageVectorSearchStageSearchMetaStageclasses de construtor, e. Essa alteração permite que você escreva queries do MongoDB Search e do MongoDB Vector Search de uma maneira mais segura e organizada. Para saber mais, consulte os guias Executar uma query de pesquisa do MongoDB e Executar uma query de Vector Search do MongoDB .Descontinua a opção
flags, usada para o mecanismo de armazenamento MMAPv1 obsoleto. Esta opção será removida na biblioteca PHP v2.0.Adiciona uma opção de classificação aos métodos
MongoDB\Collection::updateOne()eMongoDB\Collection::replaceOne(). Essa alteração também permite que você defina uma ordem de classificação como uma opção ao executar operações de atualização e substituição em uma operação em massa.Adiciona a opção
builderEncoderaos seguintes métodos:
Para obter mais informações sobre as alterações nesta versão, consulte as notas de versão v1.21 no Github.
Novidades no 1.20
Importante
MongoDB Server v3.6 Fim da vida útil
O suporte para MongoDB Server v3.6 foi removido nesta versão da biblioteca.
Adiciona suporte para MongoDB Server v8.0.
Adiciona suporte para queries de intervalo de Queryable Encryption (QE). Para usar esse recurso, seu aplicativo 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 .
Quando uma operação de cluster fragmentado não é bem-sucedida, a biblioteca evita selecionar o mesmo servidor
mongospara tentativas de repetição de operação se outros servidoresmongosestiverem disponíveis.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.Adiciona a
typeopção nas especificações de índice de pesquisa para os métodos e. Essa alteração permite criar índices do MongoDB VectorMongoDB\Collection::createIndex()Search programaticamente. Para saber mais e verMongoDB\Collection::createSearchIndexes()exemplos, consulte o guia de índices de pesquisa do MongoDB .
Para obter mais informações sobre as alterações nesta versão, consulte as notas de versão v1.20 no Github.
Novidades no 1.19
Esta versão da biblioteca PHP não contém alterações significativas e foi adicionada para manter a paridade da versão com a extensão PHP.
Novidades no 1.18
Adiciona uma nova API GridFS para tornar mais conveniente trabalhar com arquivos usando as funções de sistema de arquivos existentes do PHP. O método
MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()pode ser utilizado para registrar um alias global para um bucket GridFS . Depois de fazer isso, os arquivos dentro desse bucket podem ser acessados usando apenas um URI de arquivo (por exemplo, "gridfs://mybucket/hello.txt"). Uma demonstração desta API pode ser encontrada no script de exemplo gridfs_stream_wrapper.php.Adiciona métodos
MongoDB\Client::addSubscriber()eMongoDB\Client::removeSubscriber()à classeMongoDB\Clientpara facilitar o registro de classes de monitoramento com escopo definido para o objetoMongoDB\Driver\Managersubjacente.
Para saber mais sobre esta versão, consulte as notas de versão v1.18 no Github.
Novidades no 1.17
Apresenta uma nova API "codec" para converter BSON de e para objetos PHP. Mais informações sobre esse recurso podem ser encontradas no tutorial Codecs.
Adiciona funções
MongoDB\add_logger()eMongoDB\remove_logger()à biblioteca. Essas funções permitem que os aplicativos registrem um PSR-3 Logger para receber mensagens de registro emitidas pelo driver. Anteriormente, os registros só estavam disponíveis por meio da configuração mongodb.debugINIda extensão.Introduz novos métodos do para criar e gerenciar índices de pesquisa MongoDB . Os índices do MongoDB Search podem ser consultados usando
MongoDB\Collectiono$searchestágio de pipeline de agregação, que é suportado em todas as versões da biblioteca. Para saber mais sobre os índices do MongoDB Search e as especificidades do$searchestágio de agregação, consulte a documentação dos índices do MongoDB Search e $search.Atualiza o requisito de extensão
mongodbpara 1.17.0. O suporte para PHP 7.2 e 7.3 foi removido e a biblioteca agora requer PHP 7.4 ou mais recente.
Para saber mais sobre esta versão, consulte as notas de versão v1.17 no Github.