了解以下版本的MongoDB PHP库中引入的新功能、改进和修复:
2.5 中的新功能
PHP库 v2.5发布包含以下功能、改进和修复:
将PHP扩展要求升级到版本 2.5 或更高版本。
增加对客户端背压的支持。当服务器返回带有正
baseBackoffMS值的可重试过载错误时,驱动程序会使用该值作为其重试退避的基础,而不是使用驱动程序的默认值。为传递给
MongoDB\Client构造函数和MongoDB\Client::createClientEncryption()方法的选项添加数组形状类型定义。PHPStan 和 Psalm 等静态分析工具可以使用这些类型来验证您的客户端、驱动程序和自动加密选项。修复了
MongoDB\GridFS\Bucket::uploadFromStream()方法可能无法关闭其目标流的问题,该问题曾导致文件无法写入数据库。
有关此版本中的完整更改列表,请参阅 Github 上的 v2.5 发布说明。
2.4.2 中的新功能
PHP 库 v2.4.2 发布版包含以下更改:
有关此版本中更改的完整列表,请参阅 GitHub 上的 v2.4.2 发布说明。
2.4.1 中的新功能
PHP 库 v2.4.1 发布版包含以下更改:
有关此版本中更改的完整列表,请参阅 GitHub 上的 v2.4.1 发布说明。
2.4 中的新功能
PHP库 v2.4发布包含以下功能、改进和修复:
在 Builder API 中添加对
$rerank聚合管道阶段的支持。您可以使用Stage::rerank()工厂方法,通过使用 Voyage AI 的 重新排序模型来对输入文档进行重新排序,并返回按相关性排序的相同文档。在 MongoDB 向量搜索索引定义中添加对
storedSource选项的支持。您可以使用此选项在索引中存储指定字段的副本,以在查询时实现更快速的检索。要了解更多信息,请参阅 MongoDB Search 索引指南中的使用storedSource选项。在MongoDB\ 驱动程序 \ClientEncryption::encrypt() 方法中添加对
stringOpts选项的支持。您可以将此选项与String算法一起使用,以指定区分大小写和变音符号以及长度约束。前缀、后缀和子字符串查询需要MongoDB Server v9.0 或更高版本。要学习;了解更多信息,请参阅显式加密。
重要
以下功能需要 MongoDB Server v8.3 或更高版本。
为新
$convert功能添加构建者支持。您可以使用$convert来:执行数字基数转换。
将任何类型转换为
string。将 JSON string 转换为数组或对象。
添加对
$subtype的支持,它返回BinData值的子类型整数。添加对
$createObjectId的支持,它会生成随机ObjectId值。在聚合 string 表达式中添加对正则表达式的支持。现在,您可以在
$replaceOne和$replaceAll的find参数中使用正则表达式,并将其作为$split的分隔符。
有关此版本中的完整更改列表,请参阅 Github 上的 v2.4 发布说明。
2.3 中的新功能
PHP库 v2.3发布包含以下功能、改进和修复:
在 Builder API中添加对原子更新操作符的支持。您可以使用
MongoDB\Builder\Update类中的工厂方法通过代码完成和类型检查来构造更新文档。要学习;了解更多信息,请参阅更新文档指南的更新构建者部分。将PHP扩展要求升级到版本 2.3 或更高版本。
弃用了对MongoDB Server v4.2 的支持。即将推出的PHP库版本需要MongoDB Server v4.4 或更高版本。
添加
enableOverloadRetargeting和maxAdaptiveRetriesURI 选项。这些选项控制驱动程序遇到超负载服务器时的重试行为,仅在 MongoDB 9.0 或更高版本上支持。要了解更多信息,请参阅服务器选择和发现选项。
有关此版本中更改的更多信息,请参阅Github上的v2.3发布说明。
2.2 中的新功能
PHP库 v2.2发布包含以下功能、改进和修复:
新增对
$createObjectIds聚合管道操作符符的支持,以生成随机 ObjectID。新增对
$concatArrays和$setUnion聚合累加器的支持。新增对
$scoreFusion管道阶段的支持。允许在使用管道更新时在
MongoDB\Collection::findOneAndUpdate()方法中传递Pipeline实例。将新的
MongoDB\Model\CollectionInfo::isView()方法添加到MongoDB\Model\CollectionInfo类中。添加
MongoDB\Database::getGridFSBucket()方法,以与MongoDB\Database::getCollection()一致性。
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更改和删除:
添加以下方法:
在未来的驱动程序发布中,
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 。要学习;了解更多信息和查看示例,请参阅 聚合指南的 聚合构建器 部分。
添加以下方法:
在未来的驱动程序发布中,
Client::selectCollection()、Client::selectDatabase()和Database::selectCollection()方法将被弃用并替换为这些新方法,因此请考虑更改应用程序中的用法。为
SearchStage、VectorSearchStage和SearchMetaStage构建者类添加命名参数。此更改允许您以类型更加安全、更有条理的方式写入MongoDB 搜索和MongoDB Vector 搜索查询。要了解更多信息,请参阅运行 MongoDB 搜索查询和运行 MongoDB 向量搜索查询指南。弃用了
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\Collection方法来创建和管理MongoDB搜索索引。可以使用$search聚合管道阶段查询 MongoDB 搜索索引,该库的所有版本都支持该阶段。要学习有关MongoDB 搜索索引和$search聚合阶段的详细信息,请参阅 MongoDB 搜索索引文档和 $ 搜索。将
mongodb扩展要求升级到1.17.0 。 对PHP 7.2和7.3的支持已删除,该库现在需要PHP 7.4或更高版本。
要学习;了解有关此发布的更多信息,请参阅Github上的 v1.17 发布说明。