MongoDB Go Driver 1.2.0
The MongoDB Go driver team is pleased to release 1.2.0 of the official Go driver.
This release contains GA support for client-side field level encryption, a new bson.MarshalValue
function to marshal Go values to BSON, and various documentation improvements to add more details and examples to GoDoc.
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.
Release Notes
Bug
- [GODRIVER-1061] - bson docs refer to non-existent RawArray and Array types
- [GODRIVER-1234] - Deadlock on 1.1.0 release
- [GODRIVER-1254] - Fix libmongocrypt wrapper test failure
- [GODRIVER-1405] - "appname" is not not always sent in isMaster
- [GODRIVER-1423] - Nil interface panics in BSON marshalling
Epic
- [GODRIVER-1237] - Client-side Field Level Encryption
New Feature
- [GODRIVER-276] - Implement a testing framework
- [GODRIVER-420] - integration tests should detect topology from connection, not TOPOLOGY envvar
- [GODRIVER-626] - Support Client-side Field Level Encryption
- [GODRIVER-783] - Add support for Zstandard compression
- [GODRIVER-1158] - Enhance Decimal128
- [GODRIVER-1220] - Mark the FLE feature as "Beta" in driver docs
- [GODRIVER-1349] - Implement mgocompat StructCodec options
- [GODRIVER-1352] - Create StringCodec with options for non-bsontype.String inputs
- [GODRIVER-1353] - Port mgobson tests for mgocompat testing
- [GODRIVER-1355] - Create TimeCodec to match mgo behavior
- [GODRIVER-1357] - Add IntCodec for mgocompat
- [GODRIVER-1358] - Add UIntCodec for mgocompat
- [GODRIVER-1359] - Add BoolCodec for mgocompat
- [GODRIVER-1360] - Add FloatCodec for mgocompat
- [GODRIVER-1416] - Add function to marshal generic BSON values
Story
- [GODRIVER-990] - Implement Zeroer for primitive.Binary
Task
- [GODRIVER-1249] - Implement a mock deployment
- [GODRIVER-1250] - Change Client to depend on Deployment instead of Topology
- [GODRIVER-1253] - Create assertion library
- [GODRIVER-1256] - Assert that test closes all connections and sessions in testing framework
- [GODRIVER-1261] - Unified test runner
- [GODRIVER-1265] - causal_consistency tests
- [GODRIVER-1266] - change stream spec tests
- [GODRIVER-1267] - change stream prose tests
- [GODRIVER-1268] - client tests
- [GODRIVER-1269] - client side encryption prose tests
- [GODRIVER-1270] - client side encryption spec tests
- [GODRIVER-1271] - collection tests
- [GODRIVER-1272] - command monitoring spec tests
- [GODRIVER-1273] - crud v1 spec tests
- [GODRIVER-1274] - crud v2 spec tests
- [GODRIVER-1275] - cursor tests
- [GODRIVER-1276] - database tests
- [GODRIVER-1277] - index view tests
- [GODRIVER-1278] - mongo_test tests
- [GODRIVER-1279] - legacy operation tests
- [GODRIVER-1280] - primary stepdown tests
- [GODRIVER-1281] - read/write concern spec tests
- [GODRIVER-1282] - results_test tests
- [GODRIVER-1283] - retryable reads spec tests
- [GODRIVER-1284] - retryable writes spec tests
- [GODRIVER-1285] - sessions tests
- [GODRIVER-1286] - SingleResult tests
- [GODRIVER-1287] - mongos pinning transactions tests
- [GODRIVER-1288] - transactions spec tests
- [GODRIVER-1289] - convenient transactions spec tests
- [GODRIVER-1293] - Delete legacy_helpers_test after all tests are ported
- [GODRIVER-1309] - Update from Go1.8 to 1.9 in Evergreen config
- [GODRIVER-1310] - convenient transactions prose tests
- [GODRIVER-1327] - gridfs tests
- [GODRIVER-1331] - Remove ns assertions in index_view_test.go
- [GODRIVER-1336] - initial seedlist discovery tests
- [GODRIVER-1368] - Create language specific copy/pasteable FLE tutorials
- [GODRIVER-1369] - Expectations of listIndexNames.json should refer to command as listIndexes
- [GODRIVER-1376] - Docs for client methods
- [GODRIVER-1377] - Docs for database methods
- [GODRIVER-1378] - Docs for collection methods
- [GODRIVER-1379] - CRUD GoDoc examples
- [GODRIVER-1380] - Sessions GoDoc examples
- [GODRIVER-1383] - ChangeStream and Cursor docs and examples
- [GODRIVER-1384] - Examples for client methods
- [GODRIVER-1401] - ClientOptions docs
- [GODRIVER-1406] - FLE GA docs changes
- [GODRIVER-1410] - Add retryReads URI option
Improvement
- [GODRIVER-425] - move highlevel integration tests to sub package and remove "TOPOLOGY" env var usage
- [GODRIVER-872] - Improve documentation for IndexView
- [GODRIVER-911] - Deprecate mongo.IndexOptionsBuilder
- [GODRIVER-1154] - How to use MongoDB's connection pool?
- [GODRIVER-1221] - Document whether mongo.Client is goroutine safe
- [GODRIVER-1294] - Collection.InsertOne is having problems with a struct that has a interface as attribute
- [GODRIVER-1305] - Allow inline fields to be pointers of struct
- [GODRIVER-1320] - Avoid using readConcern snapshot in sharded transaction tests
- [GODRIVER-1328] - Loosen strictness of date parsing in the driver
- [GODRIVER-1329] - Document public types in the mongo package
- [GODRIVER-1333] - Add missing tests for aggregation pipeline in bulk write updates
- [GODRIVER-1348] - FLE GA Spec changes
- [GODRIVER-1374] - Add TryNext API
- [GODRIVER-1386] - Fix data race in topology/resource_pool_test
- [GODRIVER-1404] - Improve performance of SelectServer
- [GODRIVER-1407] - create mapCodec for mgocompat