Release Notes - PHP Driver: Library - Version 1.21.0 - HTML format

Spec Change

  • [PHPLIB-1569] - Add valid-pass and valid-fail tests for $$matchAsRoot and $$matchAsDocument operators
  • [PHPLIB-1578] - Test operations may be an empty array
  • [PHPLIB-1583] - Add test to ensure network errors match isClientError
  • [PHPLIB-1599] - Skip aggregate $out test in retryable writes spec on serverless

Question

  • [PHPLIB-1600] - Support object in BSONDocument constructor

Bug

  • [PHPLIB-1548] - TypeMap option not inherited from the Collection options in listSearchIndexes
  • [PHPLIB-1597] - Allow "string" type in every builder argument that accepts a "resolveTo*" type

Epic

  • [PHPLIB-1418] - Merge aggregation builder into PHPLIB

New Feature

  • [PHPLIB-1419] - Integrate pipeline builder with aggregate() and watch() methods
  • [PHPLIB-1420] - Integrate query builder for non-aggregation APIs
  • [PHPLIB-1492] - Support sort option for replaceOne and updateOne operations
  • [PHPLIB-1506] - Integrate code and config from mongo-php-builder into library
  • [PHPLIB-1568] - Add GridFS\Bucket::deleteByName() and renameByName()

Task

  • [PHPLIB-955] - Require PHP 8.1
  • [PHPLIB-1185] - Add Database::getCollection and Client::getDatabase
  • [PHPLIB-1301] - Clarify whether heartbeat started event should be emitted before connection establishment in ServerMonitor
  • [PHPLIB-1369] - Update test suite to use PHPUnit 10
  • [PHPLIB-1505] - Add option to set a default encoder for aggregation pipelines
  • [PHPLIB-1521] - Mark internal and operation classes as final in docblock
  • [PHPLIB-1533] - Deprecate mapReduce helper and operation class
  • [PHPLIB-1545] - Deprecate flags option and related constants for CreateCollection
  • [PHPLIB-1563] - Ensure findOne does not set batchSize=1
  • [PHPLIB-1579] - Regression test for "number" alias in $$type operator
  • [PHPLIB-1586] - [EoL 4.0] Communicate future minWireVersion bump / 4.0 EoL
  • [PHPLIB-1591] - Split updateWithPipelines.yml by operation
  • [PHPLIB-1594] - Search index management methods no longer require M10+ clusters
  • [PHPLIB-1598] - Harmonize builder type names in the config/expression.php
  • [PHPLIB-1612] - Upgrade Psalm v6
  • [PHPLIB-1616] - $vectorSearch "path" parameter cannot be an array
  • [PHPLIB-1619] - Do not pass ReadPreference directly to executeCommand in tests

Improvement

  • [PHPLIB-1564] - Eliminate unnecessary killCursors command when batchSize == limit
  • [PHPLIB-1582] - Add index hint support for distinct command
  • [PHPLIB-1587] - Use is_document to validate hint options
  • [PHPLIB-1596] - Implement all $search stage options as named argument
  • [PHPLIB-1609] - Don't mandate the use of "distanceField" in $geoNear
  • [PHPLIB-1613] - Use git submodule for drivers-evg-tools
  • [PHPLIB-1634] - Builder: Accept DateTimeInterface objects where "date" values are accepted
  • [PHPLIB-1635] - Allow injection of instance of Encoder into the BuilderEncoder

Sub-task

  • [PHPLIB-1514] - Make PHPUnit data providers static
  • [PHPLIB-1515] - Replace assertObjectHasAttribute with assertObjectHasProperty
  • [PHPLIB-1525] - Remove symfony/phpunit-bridge
  • [PHPLIB-1538] - Deprecate typeMap option on operations without meaningful document

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.