mongo-go-driver v1.1.0 Release Notes

Release Date: 2019-08-13 // over 4 years ago
  • ๐Ÿš€ The MongoDB Go driver team is pleased to release 1.1.0 of the official Go driver.

    ๐Ÿš€ This release contains support for MongoDB server version 4.2.

    ๐Ÿ“š Documentation can be found on GoDoc and the MongoDB documentation site. BSON library documentation is also available on GoDoc. Questions and inquiries can be asked on the mongo-go-driver Google Group. Bugs can be reported in the Go Driver Jira where a list of current issues can be found.

    Core Driver Redesign

    ๐ŸŽ The lower-level driver implementation was redesigned. The improved lower-level driver contained improvements to increase maintainability and greatly increase performance.

    Connection Pool Monitoring

    The Connection Monitoring and Pooling specification has been implemented. This changes the pool implementation to LIFO, which improves connection utilization. The addition of event.PoolMonitor enables users to monitor various connection and connection pool related events.

    ๐Ÿš€ Release Notes

    ๐Ÿ› Bug

    • [GODRIVER-1018] - record codeName for WriteConcernErrors
    • [GODRIVER-1073] - ChangeStream spec's Resumable Error definition is too broad
    • โœ… [GODRIVER-1084] - Data race in topology tests
    • โœ… [GODRIVER-1085] - Change stream test failures on Evergreen
    • [GODRIVER-1100] - Closing batch cursor after find gets "ended session was used"
    • [GODRIVER-1107] - SetHint causes InvalidBSON error
    • [GODRIVER-1108] - Operation.addReadConcern encodes "empty" ReadConcern
    • [GODRIVER-1114] - RunCommandCursor always fails and returns an error message referencing internal driver details
    • ๐Ÿ“Œ [GODRIVER-1130] - Pinned Servers should be cleared properly
    • [GODRIVER-1153] - nil pointer asMDoc
    • [GODRIVER-1160] - driver.BatchCursor Next returns true when first batch is empty
    • [GODRIVER-1187] - Find() uses a write selector instead of a read selector
    • ๐Ÿ“œ [GODRIVER-1215] - lastWriteDate is parsed from isMaster incorrectly
    • [GODRIVER-1224] - Race detected in x/mongo/driver/topology
    • 0๏ธโƒฃ [GODRIVER-1226] - localThresholdMS does not default to 15 ms

    ๐Ÿ†• New Feature

    • [GODRIVER-620] - Implement Unified URI Options
    • [GODRIVER-621] - Implement Convenient API for Transactions
    • [GODRIVER-622] - Implement Connection Monitoring and Pooling spec
    • ๐Ÿ“Œ [GODRIVER-623] - Support mongos pinning for sharded transactions
    • [GODRIVER-624] - Retryable Reads
    • ๐Ÿ‘ [GODRIVER-625] - Support polling SRV records for mongos discovery
    • [GODRIVER-628] - Connections survive primary stepdown
    • ๐Ÿ‘ [GODRIVER-637] - Support sharded transactions recovery token
    • ๐Ÿ‘ [GODRIVER-680] - Support running commands as aggregation
    • โœ… [GODRIVER-690] - Transaction test runner should use "local" read concern when asserting the final collection state
    • [GODRIVER-723] - Missing ListCollectionNames
    • [GODRIVER-736] - Add comparison methods to primitive.Timestamp
    • โœ… [GODRIVER-745] - Resync change stream tests to test all new notification types
    • ๐Ÿ‘ [GODRIVER-765] - Support 'startAfter' option to the $changeStream stage
    • ๐Ÿ‘ [GODRIVER-808] - Add support for Split-Horizon Topology
    • 0๏ธโƒฃ [GODRIVER-822] - Support Retryable Writes on by Default
    • ๐Ÿ‘ [GODRIVER-824] - Support postBatchResumeToken in change streams
    • โœ… [GODRIVER-841] - Resync SDAM tests to only examine non-unknown server descriptions to determine incompatibility
    • ๐Ÿ‘ [GODRIVER-845] - Add support for majority read concern level to Aggregation $out
    • [GODRIVER-913] - countDocuments should use group with _id: 1
    • [GODRIVER-916] - Cursor method to decode all results into a slice
    • โšก๏ธ [GODRIVER-919] - Add the ability to specify a pipeline to an update command
    • ๐Ÿ“ฆ [GODRIVER-927] - Create new driver package
    • โšก๏ธ [GODRIVER-928] - Update topology.Topology type
    • [GODRIVER-929] - Create topology.pool type
    • [GODRIVER-930] - Implement base driver.Connection type
    • [GODRIVER-931] - Implement topology.legacyConnection type
    • โšก๏ธ [GODRIVER-932] - Update topology.Server type
    • [GODRIVER-978] - Implement driver.Operation
    • ๐Ÿ‘ [GODRIVER-984] - Add support for legacy find, getMore, and killCursors to driver.Operation
    • [GODRIVER-985] - Design & Implement drivergen
    • [GODRIVER-992] - Add compression to driver.Operation
    • [GODRIVER-993] - Add command monitoring to driver.Operation
    • [GODRIVER-1081] - Allow applications to set maxTimeMS for commitTransaction
    • [GODRIVER-1209] - Create LocalAddresser interface and make topology.Connection implement it
    • ๐Ÿ‘ [GODRIVER-1219] - Raise an actionable error message when retryWrites fails due to using an unsupported storage engine

    Task

    ๐Ÿ‘Œ Improvement

    • โœ… [GODRIVER-145] - Automate Atlas connectivity tests
    • [GODRIVER-447] - Only send bypassDocumentValidation if it's true
    • โšก๏ธ [GODRIVER-512] - Update ChangeStream tests for 4.1.1 "drop" notifications
    • [GODRIVER-705] - Add an alias in bsoncore for an Array
    • [GODRIVER-755] - Add background goroutine per server to close expired, idle connections
    • ๐Ÿšš [GODRIVER-810] - Remove topology.Topology.registry field
    • โฌ†๏ธ [GODRIVER-864] - Upgrade testing to go 1.12
    • ๐Ÿ‘ [GODRIVER-906] - Support wildcardProjection index option
    • ๐Ÿ“ฆ [GODRIVER-955] - Move packages under x/mongo/driverlegacy under x/mongo/driver
    • ๐Ÿšš [GODRIVER-994] - Remove legacy network library code
    • [GODRIVER-1042] - Don't add read preference for non-mongos server with OP_QUERY
    • ๐Ÿ“‡ [GODRIVER-1060] - Do not send client metadata on regular operation.IsMaster.Execute invocations
    • [GODRIVER-1065] - Generate ListCollections operation
    • [GODRIVER-1075] - Call SingleResult.setRdrContents() in SingleResult.Err() to return correct error
    • [GODRIVER-1080] - Discard ServerSessions involved in network errors
    • ๐Ÿ“š [GODRIVER-1083] - Documentation for countDocuments MUST mention estimatedDocumentCount
    • ๐Ÿ”จ [GODRIVER-1094] - Refactor templates in drivergen
    • [GODRIVER-1099] - Change RetryType to Type
    • [GODRIVER-1103] - Migrate bulkWrite to core API
    • [GODRIVER-1124] - Don't send $readPreference to standalone servers
    • โœ… [GODRIVER-1155] - Change chunk size in GridFS tests
    • [GODRIVER-1163] - Retrieve a batch cursor from a cursor
    • [GODRIVER-1173] - Add connected status to connection to avoid race conditions