Skip to content

MongoDB Go Driver 1.1.0

Compare
Choose a tag to compare
@skriptble skriptble released this 13 Aug 16:12
· 1158 commits to master since this release

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
  • [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
  • [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