了解以下版本的MongoDB PHP库中引入的新功能、改进和修复:
2.1 中的新功能
重要
重大更改
PHP库 v2.1发布引入了以下重大更改:
删除对MongoDB Server 4.0 的支持。支持的最低MongoDB Server版本为 4.2。
PHP库 v2.1发布包含以下功能、改进和修复:
新增与PHP 8.5 的兼容性。
添加客户端端批量写入API ,以便在同一调用中对多个数据库和集合执行写入操作。要学习;了解有关此功能的更多信息,请参阅批量写入操作指南中的 客户端批量写入部分。
2.0 中的新功能
重要
重大更改
PHP库 v2.0发布引入了以下重大更改:
以下方法返回
void而不是原始命令响应:MongoDB\Client:dropDatabase()MongoDB\Collection:drop(),dropIndex(),dropIndexes(),dropSearchIndex(),rename()MongoDB\Database:createCollection(),drop(),dropCollection(),renameCollection()
要学习;了解有关此发布中重大更改的更多信息,请参阅升级库版本指南中的版本 2.0 重大更改部分。
PHP库 v2.0发布包括以下API更改和删除:
添加以下方法:
MongoDB\Client::getDatabase():别名MongoDB\Client::selectDatabase()MongoDB\Client::getCollection():别名MongoDB\Client::selectCollection()MongoDB\Database::getCollection():别名MongoDB\Database::selectCollection()
在未来的驱动程序发布中,
Client::selectCollection()、Client::selectDatabase()和Database::selectCollection()方法将被弃用并替换为这些新方法,因此请考虑更改应用程序中的用法。修改
MongoDB\Database::aggregate()和MongoDB\Collection::aggregate()方法,以便它们可以接受Pipeline实例作为$pipeline参数。要查看使用此构造的示例,请参阅 聚合指南的 聚合构建器 部分。将
Cursor类型提示替换为CursorInterface,以获得更好的可扩展性和兼容性。删除GridFS类型中已弃用的字段。
将文件上传到GridFS时,该库不会计算
md5字段。如果应用程序需要文件摘要,则必须在GridFS外部实现此进程并将值存储在元数据中。字段
contentType和aliases不再存储在filesGridFS集合中。如果您的应用程序需要此信息,则必须将其存储在元数据中。要学习;了解有关GridFS的更多信息,请参阅存储大型文件指南。
删除以下查找操作已弃用的选项:
maxScanmodifiersoplogReplaysnapshot
要学习;了解查找操作支持的选项,请参阅
MongoDB\Collection::find()或MongoDB\Collection::findOne()API文档。删除已弃用的
IndexInfo::isGeoHaystack()方法。删除了
MongoDB\Database::createCollection()方法已弃用的autoIndexId和flags选项。通过删除以下已弃用的方法和类型来放弃对map-reduce功能的支持:
MongoDB\Collection::mapReduce()MongoDB\MapReduceResult
您可以使用
$group和$merge等聚合管道阶段重写map-reduce操作。要学习;了解更多信息,请参阅MongoDB Server手册中的 Map-Reduce 到聚合管道。删除以下
Iterator实现:MongoDB\Model\CollectionInfoIteratorMongoDB\Model\DatabaseInfoIteratorMongoDB\Model\IndexInfoIterator
MongoDB\Client::listDatabases()、MongoDB\Database::listCollections()和MongoDB\Collection::listIndexes()方法返回提供相应结果的通用可遍历Iterator实例。
1.21 中的新功能
PHP库 v1.21发布包含以下功能、改进和修复:
引入聚合构建器,这是一种以类型更加安全的方式构建聚合管道的API 。要学习;了解更多信息和查看示例,请参阅 聚合指南的 聚合构建器 部分。
添加以下方法:
MongoDB\Client::getDatabase():别名MongoDB\Client::selectDatabase()MongoDB\Database::getCollection():别名MongoDB\Database::selectCollection()MongoDB\Database::getCollection():别名MongoDB\Database::selectCollection()
在未来的驱动程序发布中,
Client::selectCollection()、Client::selectDatabase()和Database::selectCollection()方法将被弃用并替换为这些新方法,因此请考虑更改应用程序中的用法。为
SearchStage、VectorSearchStage和SearchMetaStage构建器类添加命名参数。此更改允许您以类型更加安全、更有条理的方式写入MongoDB Search 和MongoDB Vector Search 查询。要学习;了解更多信息,请参阅运行MongoDB搜索查询和运行MongoDB Vector Search 查询指南。弃用了
flags选项,该选项用于已弃用的 MMAPv1存储引擎。此选项将在PHP库 v2.0 中删除。为
MongoDB\Collection::updateOne()和MongoDB\Collection::replaceOne()方法添加排序选项。此更改还允许您在批量操作中执行更新和替换操作时将排序顺序设立为选项。将
builderEncoder选项添加到以下方法:
有关此版本中更改的更多信息,请参阅Github上的v1.21发布说明。
1.20 中的新功能
重要
MongoDB Server v 3.6 生命周期结束
此发布的库删除了对MongoDB Server v 3.6的支持。
新增支持MongoDB Server v 8.0的支持。
添加支持可查询Queryable Encryption(QE)范围查询的支持。 要使用此功能,您的应用必须连接到MongoDB Server 8.0或更高版本。 有关 QE范围查询的更多信息,请参阅MongoDB Server手册中的可查询Queryable Encryption。
当分片集群操作不成功时,如果有其他
mongos服务器可用,则该库会避免选择相同的mongos服务器进行操作重试。创建 KMIP 数据密钥时,现在可以指定
delegated选项。 如果此选项设立为true,则 KMIP提供商在本地执行数据密钥的加密和解密,确保加密密钥永远不会离开 KMIP服务器。在
MongoDB\Collection::createIndex()和MongoDB\Collection::createSearchIndexes()方法的搜索索引规范中添加type选项。此更改允许您以编程方式创建MongoDB Vector Search 索引。要学习;了解更多信息和查看示例,请参阅MongoDB搜索索引指南。
有关此版本中更改的更多信息,请参阅Github上的v1.20发布说明。
1.19 中的新功能
此发布的PHP库不包含重大更改,添加此库是为了与PHP扩展保持版本奇偶校验。
1.18 中的新功能
添加新的GridFS API ,以便更方便地使用 PHP 的现有文件系统函数处理文件。
MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()方法可用于注册GridFS存储桶的全局别名。完成此操作后,就可以仅使用文件URI 访问该存储桶中的文件(例如“gridfs://mybucket/hello.txt”)。有关此 API 的演示,请参阅 gridfs_stream_wrapper.php 示例脚本。向
MongoDB\Client类添加MongoDB\Client::addSubscriber()和MongoDB\Client::removeSubscriber()方法,以便更轻松地注册作用域为根本的MongoDB\Driver\Manager对象的监控类。
要学习;了解有关此发布的更多信息,请参阅Github上的 v1.18 发布说明。
1.17 中的新功能
引入新的“编解码器” API ,用于在BSON与PHP对象之间进行转换。 有关此功能的更多信息,请参阅编解码器教程。
将
MongoDB\add_logger()和MongoDB\remove_logger()函数添加到库中。这些函数允许应用程序注册PSR-3 记录器以接收驾驶员发出的日志消息。以前,只能通过扩展的 mongodb.debugINI设置获取日志。引入新的 方法来创建和管理MongoDB搜索索引。可以使用 聚合管道阶段查询MongoDB
MongoDB\CollectionSearch$search索引,该库的所有版本都支持该阶段。要学习;了解有关MongoDB Search 索引和$search聚合阶段的详细信息,请参阅MongoDB Search 索引文档和 $ 搜索。将
mongodb扩展要求升级到1.17.0 。 对PHP 7.2和7.3的支持已删除,该库现在需要PHP 7.4或更高版本。
要学习;了解有关此发布的更多信息,请参阅Github上的 v1.17 发布说明。