Changes for version v2.2.0 - 2019-08-13

  • !!! END OF LIFE NOTICE !!!
    • Version v2.2.0 is the final feature release of the MongoDB Perl driver. The driver is now in a 12-month "sunset" period and will receive security patches and critical bug fixes only. The Perl driver will be end-of-life and unsupported on August 13, 2020.
  • *** Deprecations ***
    • PERL-993 Deprecate parallel_scan
  • Additions
    • PERL-789 OP_MSG support
    • PERL-920 Add option for applications to register a custom server selector
    • PERL-989 Implement SDAM monitoring
    • PERL-1008 Support index all paths
    • PERL-1021 Implement Unified URI Options
    • PERL-1022 Implement Convenient API for Transactions
    • PERL-1024 Support mongos pinning for sharded transactions
    • PERL-1025 Retryable Reads
    • PERL-1026 Support polling SRV records for mongos discovery
    • PERL-1035 Support sharded transactions recovery token
    • PERL-1046 Add database aggregation method
    • PERL-1052 Support 'startAfter' option to the $changeStream stage
    • PERL-1053 Add support for Zstandard compression
    • PERL-1060 Add support for Snappy compression
    • PERL-1070 Support postBatchResumeToken in change streams
    • PERL-1082 Add the ability to specify a pipeline to an update command
    • PERL-1098 Allow applications to set maxTimeMS for commitTransaction
    • PERL-1105 Support aggregation $merge stage
  • Changes
    • PERL-785 Call "ping" on a socket that has been idle for socketCheckIntervalMS
    • PERL-1028 Support server connections that survive primary stepdown
    • PERL-1054 Disable TLS renegotiation when possible (security)
    • PERL-1057 Use majority write concern when retrying commitTransaction
    • PERL-1068 Make Retryable Writes on by Default
    • PERL-1075 Add support for read concern to aggregation $out
    • PERL-1100 Specify behavior where connection string contain auth database but no credentials
  • Bug Fixes
    • PERL-927 Ensure hint used with aggregate is string or IxHash or BSON::Doc
    • PERL-930 Allow use of BSON::Raw for insert, update, etc.
    • PERL-970 Can't use BSON::Doc as sort option in find command
    • PERL-988 Index lists should preserve key order in results
    • PERL-994 GridFS DownloadStream warns in spec tests on old perls
    • PERL-1012 Driver doesn't clear session pool after fork
    • PERL-1017 Ignore db and collection read concern in transaction
    • PERL-1033 Pod link error
    • PERL-1041 Bulk Write Op calls result method on non-object error
    • PERL-1057 Use majority write concern when retrying commitTransaction
    • PERL-1058 Drivers should ignore batchSize=0 for aggregate with $out
    • PERL-1061 The driver fails to parse a URI if mongodb+srv format is used and the ssl=true option is set
    • PERL-1076 Ensure that getMore right after a resume is retried in changestreams
    • PERL-1083 Work around StaleDbVersion distinct bug
    • PERL-1096 ChangeStream spec's Resumable Error definition is too broad
    • PERL-1097 Discard ServerSessions involved in network errors
    • PERL-1123 Raise better error for retryable writes with mmapv1
  • Testing
    • PERL-806 Test Driver Wire Version Overlap logic
    • PERL-833 Test QueryResult destructor kills cursor
    • PERL-867 Resync GridFS tests to add test for legacy GridFS, where no filename was set
    • PERL-976 Test only the initial command in a transaction includes readConcern
    • PERL-996 Resync read write concern tests to add new read concern levels
    • PERL-1018 Test deleteMany and updateMany with retryWrites=true
    • PERL-1048 Transaction test runner should use "local" read concern when asserting the final collection state
    • PERL-1051 Update CRUD spec tests to use transaction spec test format
    • PERL-1074 Resync transaction spec tests for bulk write error reporting change
    • PERL-1090 Amend change stream missing resume token tests for MongoDB 4.2+
    • PERL-1095 Stop testing with threads (too many errors on process exit)
    • PERL-1109 Fix result assertion in change stream spec test
  • Documentation
    • PERL-780 Document that TCP keepalive defaults to true
    • PERL-972 Amend transaction examples
    • PERL-986 Causal Consistency Examples
    • PERL-1056 Update Transactions Retry Example 3 to include read preference
    • PERL-1085 Document connection string and URI option precedence rules
    • PERL-1101 Documentation for countDocuments mentions estimatedDocumentCount
    • PERL-1112 Update change stream docs example for resume token access
    • PERL-1117 Specify effect of client-side errors on in-progress transactions
  • Prerequisites
    • PERL-841 Remove Try::Tiny as a dependency
    • Bump BSON to v1.12.0 and BSON::XS (optional) to v0.8.0
    • Bump Path::Tiny to 0.058
  • ~ Internal Changes ~
    • PERL-921 Only send bypassDocumentValidation if it's true
    • PERL-935 Consolidate session vs retryable write feature detection
    • PERL-1078 countDocuments should internally use group with _id: 1

Changes for version v2.1.2 - 2019-08-05 (TRIAL RELEASE)

Changes for version v2.1.1 - 2019-08-02 (TRIAL RELEASE)

Changes for version v2.1.0 - 2019-02-06 (TRIAL RELEASE)


Using MongoDB data types with Perl
Some examples of MongoDB syntax
Internal event monitoring API for instrumentation
Getting started with MongoDB
Deprecations and behavior changes from v1 to v2
Deprecations and behavior changes from v0 to v1


Official MongoDB Driver for Perl
(DEPRECATED) MongoDB binary type
(DEPRECATED) Regular expression type
MongoDB bulk write interface
MongoDB bulk write result document
Bulk write operations against a query document
A stream providing update information for collections.
MongoDB session and transaction management
(DEPRECATED) JavaScript code type
A MongoDB Collection
MongoDB generic command result document
A lazy cursor for Mongo query results
(DEPRECATED) A MongoDB database reference type
A MongoDB Database
MongoDB deletion result object
MongoDB Driver Error classes
A file storage abstraction
File handle abstraction for downloading
File handle abstraction for uploading
Index management for a collection
MongoDB single insert result object
MongoDB single insert result object
A connection to a MongoDB server or multi-server deployment
(DEPRECATED) A Mongo Object ID
An iterator for Mongo query results
An iterator for Mongo query results with client-side filtering
Encapsulate and validate a read concern
Encapsulate and validate read preferences
(DEPRECATED) Replication timestamp type
MongoDB unacknowledged result object
MongoDB update result object
Encapsulate and validate a write concern


in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/
in lib/MongoDB/