mongo-go-driver v1.4.0-beta1 Release Notes

Release Date: 2020-04-10 // about 4 years ago
  • ๐Ÿš€ The MongoDB Go driver team is pleased to release 1.4.0-beta1 of the official Go driver.

    ๐Ÿš€ This release contains support for some MongoDB server version 4.4 features and improvements to the driver API.

    ๐Ÿ“š Documentation can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver Jira where a list of current issues can be found.

    Context for BSON Errors

    ๐Ÿš€ In previous versions, unmarshalling BSON bytes into a struct could fail with errors like cannot decode string into int32 type. These errors lacked context and could be confusing to debug. This release adds context to these errors to provide both the BSON key and the struct field name which caused the error. A similar error is now in the form error decoding key foo(fieldFoo): cannot decode string into int32 type.

    ๐Ÿš€ Release Notes

    ๐Ÿ†• New Feature

    • [GODRIVER-952] - Lack of context in error description like "cannot decode 64-bit integer into a string type"
    • ๐Ÿ‘ [GODRIVER-1390] - Support shorter SCRAM conversation
    • [GODRIVER-1542] - Implement primitive.DateTime.UnmarshalJSON

    Task

    • [GODRIVER-1303] - Bump wire protocol version for 4.4
    • โšก๏ธ [GODRIVER-1366] - support ability to pass hint to update
    • [GODRIVER-1391] - Collection and index creation in multi-doc txns
    • ๐Ÿ‘ [GODRIVER-1395] - MONGODB-AWS Support
    • ๐Ÿ‘ [GODRIVER-1396] - Support for allowDiskUse on find operations
    • โšก๏ธ [GODRIVER-1397] - Allow passing hint to findAndModify update and replace operations
    • ๐Ÿ—„ [GODRIVER-1462] - Deprecate oplogReplay find command option from CRUD spec
    • ๐Ÿ‘ [GODRIVER-1467] - OCSP Support
    • ๐Ÿ‘ [GODRIVER-1469] - GridFS index checking should support indexes created in the shell
    • ๐Ÿ”’ [GODRIVER-1485] - Remove Gopkg.toml and Gopkg.lock
    • ๐Ÿ“œ [GODRIVER-1490] - Separate Connection String Parsing and Validation
    • [GODRIVER-1491] - OCSP cache and URI option

    ๐Ÿ‘Œ Improvement

    • ๐Ÿšš [GODRIVER-672] - Remove bsonx dependency in driver/session
    • โœ… [GODRIVER-1398] - Improve testing around default writeConcern
    • [GODRIVER-1437] - Expand use of error labels for RetryableWrites
    • โœ… [GODRIVER-1444] - Change uri_options/auth-options spec test to enable conditional tests
    • โœ… [GODRIVER-1445] - Verify max set version and max election id on topologies in SDAM spec tests
    • [GODRIVER-1464] - Make ExceededTimeLimit retryable writes error
    • [GODRIVER-1470] - Raise error if hint specified for unacknowledged update using OP_MSG or OP_UPDATE
    • [GODRIVER-1483] - Add error labels to WriteExceptions
    • ๐Ÿšš [GODRIVER-1499] - Remove timeout check from server selection fast path
    • [GODRIVER-1508] - Allow hinting the delete command
    • [GODRIVER-1509] - Use whitelist for change stream resumability
    • [GODRIVER-1524] - Unreachable code and confusing error message in loadCert
    • ๐Ÿ‘ [GODRIVER-1526] - Support speculative authentication attempts in isMaster
    • [GODRIVER-1528] - RetryableWrites specification improvements
    • [GODRIVER-1536] - Ensure that the WriteConcernError "errInfo" object is propagated
    • ๐Ÿšš [GODRIVER-1543] - Remove ElectionInProgress (216) from ResumableChangeStreamError
    • [GODRIVER-1546] - Expose gridfs files and chunks collections
    • ๐Ÿ“‡ [GODRIVER-1548] - Access filename and metadata in gridfs DownloadStream
    • [GODRIVER-1551] - Allow BSON undefined to decode to Go types