The MongoDB driver for Go
Clone or download
Pull request Compare This branch is 106 commits ahead, 1 commit behind domodwyer:master.
domodwyer Merge pull request #263 from globalsign/feature/issue-template-suppor…
…ted-versions

Issue template and MongoDB supported versions
Latest commit 1ca0a4f Sep 5, 2018
Permalink
Failed to load latest commit information.
.github github: add issue template Sep 5, 2018
bson Release/r2018.06.15 (#191) Jun 15, 2018
dbtest Release/r2018.06.15 (#191) Jun 15, 2018
harness Merge Development (#111) Feb 20, 2018
internal Release/r2018.06.15 (#191) Jun 15, 2018
txn Merge Development (#111) Feb 20, 2018
.gitignore Merge branch 'master' into release/r2018.04.23 Apr 23, 2018
.travis.yml Revert "Test against Mongo minor releases updates as of Aug 2018" Aug 28, 2018
CONTRIBUTING.md Add contribution guidelines. Aug 2, 2017
LICENSE The "out" option in the MapReduce command must be ordered. This was Sep 4, 2013
Makefile Rename testdb to harness. Mar 3, 2016
README.md readme: add supported versions Sep 5, 2018
auth.go Merge Development (#48) Oct 11, 2017
auth_test.go Merge Development (#79) Jan 15, 2018
bulk.go Merge Development (#79) Jan 15, 2018
bulk_test.go Merge Development (#48) Oct 11, 2017
changestreams.go Merge Development (#111) Feb 20, 2018
changestreams_test.go Merge Development (#111) Feb 20, 2018
cluster.go Release/r2018.06.15 (#191) Jun 15, 2018
cluster_test.go Release/r2018.06.15 (#191) Jun 15, 2018
coarse_time.go socket: amortise cost of querying OS time counter (#149) Apr 19, 2018
coarse_time_test.go socket: amortise cost of querying OS time counter (#149) Apr 19, 2018
doc.go Minor documentation updates (#141) Apr 10, 2018
example_test.go Release/r2018.06.15 (#191) Jun 15, 2018
export_test.go Release/r2018.06.15 (#191) Jun 15, 2018
gridfs.go Merge Development (#48) Oct 11, 2017
gridfs_test.go Fix import path Apr 18, 2017
log.go Merge Development (#48) Oct 11, 2017
queue.go go fmt Jun 17, 2013
queue_test.go Move package to gopkg.in. Jul 16, 2014
raceoff.go mgo: optimize seeking to end of GridFS file Aug 12, 2014
raceon.go Add missing files defining raceDetector. Jul 1, 2014
saslimpl.go Fix import path Apr 18, 2017
saslstub.go Experimental SASL support. Mar 12, 2014
server.go Release/r2018.06.15 (#191) Jun 15, 2018
server_test.go Release/r2018.06.15 (#191) Jun 15, 2018
session.go Release/r2018.06.15 (#191) Jun 15, 2018
session_internal_test.go Release/r2018.06.15 (#191) Jun 15, 2018
session_test.go Release/r2018.06.15 (#191) Jun 15, 2018
socket.go Release/r2018.06.15 (#191) Jun 15, 2018
stats.go Add signaling support for connection pool waiting (#115) Apr 3, 2018
suite_test.go Fix import path Apr 18, 2017
syscall_test.go Drop panic making the test suite not run on windows. Sep 18, 2014
syscall_windows_test.go Drop panic making the test suite not run on windows. Sep 18, 2014

README.md

Build Status GoDoc

The MongoDB driver for Go

This fork has had a few improvements by ourselves as well as several PR's merged from the original mgo repo that are currently awaiting review. Changes are mostly geared towards performance improvements and bug fixes, though a few new features have been added.

Further PR's (with tests) are welcome, but please maintain backwards compatibility.

Detailed documentation of the API is available at GoDoc.

A sub-package that implements the BSON specification is also included, and may be used independently of the driver.

Supported Versions

mgo is known to work well on (and has integration tests against) MongoDB v3.0, 3.2, 3.4 and 3.6.

MongoDB 4.0 is currently experimental - we would happily accept PRs to help improve support!

Changes

  • Fixes attempting to authenticate before every query (details)
  • Removes bulk update / delete batch size limitations (details)
  • Adds native support for time.Duration marshalling (details)
  • Reduce memory footprint / garbage collection pressure by reusing buffers (details, more)
  • Support majority read concerns (details)
  • Improved connection handling (details)
  • Hides SASL warnings (details)
  • Support for partial indexes (details)
  • Fixes timezone handling (details)
  • Integration tests run against MongoDB 3.2 & 3.4 releases (details, more, more)
  • Improved multi-document transaction performance (details, more, more)
  • Fixes cursor timeouts (details)
  • Support index hints and timeouts for count queries (details)
  • Don't panic when handling indexed int64 fields (details)
  • Supports dropping all indexes on a collection (details)
  • Annotates log entries/profiler output with optional appName on 3.4+ (details)
  • Support for read-only views in 3.4+ (details)
  • Support for collations in 3.4+ (details, more)
  • Provide BSON constants for convenience/sanity (details)
  • Consistently unmarshal time.Time values as UTC (details)
  • Enforces best practise coding guidelines (details)
  • GetBSON correctly handles structs with both fields and pointers (details)
  • Improved bson.Raw unmarshalling performance (details)
  • Minimise socket connection timeouts due to excessive locking (details)
  • Natively support X509 client authentication (details)
  • Gracefully recover from a temporarily unreachable server (details)
  • Use JSON tags when no explicit BSON are tags set (details)
  • Support $changeStream tailing on 3.6+ (details)
  • Fix deadlock in cluster synchronisation (details)
  • Implement maxIdleTimeout for pooled connections (details)
  • Connection pool waiting improvements (details)
  • Fixes BSON encoding for $in and friends (details)
  • Add BSON stream encoders (details)
  • Add integer map key support in the BSON encoder (details)
  • Support aggregation collations (details)
  • Support encoding of inline struct references (details)
  • Improved windows test harness (details)
  • Improved type and nil handling in the BSON codec (details, more)
  • Separated network read/write timeouts (details)
  • Expanded dial string configuration options (details)
  • Implement MongoTimestamp (details)
  • Support setting writeConcern for findAndModify operations (details)
  • Add ssl to the dial string options (details)

Thanks to

  • @aksentyev
  • @bachue
  • @bozaro
  • @BenLubar
  • @carldunham
  • @carter2000
  • @cedric-cordenier
  • @cezarsa
  • @DaytonG
  • @ddspog
  • @drichelson
  • @dvic
  • @eaglerayp
  • @feliixx
  • @fmpwizard
  • @gazoon
  • @gedge
  • @gnawux
  • @idy
  • @jameinel
  • @jefferickson
  • @johnlawsharrison
  • @KJTsanaktsidis
  • @larrycinnabar
  • @mapete94
  • @maxnoel
  • @mcspring
  • @Mei-Zhao
  • @peterdeka
  • @Reenjii
  • @roobre
  • @smoya
  • @steve-gray
  • @tbruyelle
  • @wgallagher