MongoRelease Notes
v2.x
A complete re-write from the ground up. Optimised to work with Mongo's stable API v1, as introduced in Mongo 5.2.
v2.1.8
- New: Added connection debug info to
MongoConnMgr.props
. - Fix: Added a guard against Mongo
getMore()
returning an empty batch.
v2.1.6
- Chg: Initial socket connection errors are now subject to an binary exponential backoff algorithm. This makes re-connections after a failover more robust.
v2.1.4
- Chg: Remove any default auto-added writeConcerns from cmds when running inside multi-statement transactions.
- Bug: Fixed TLS SNI issue when retrying cmds sent to an Atlas sharded cluster during a failover re-connection.
v2.1.2
- New: Added
MongoConnMgr.isConnected()
utility method. - Chg: Moar explicit err msgs on duplicate index key errors.
- Chg: Exposed (unofficial)
disableTxns
MongoConn URL query option. - Bug: Fixed NPE on checking out conns after a lost connection.
- Bug: Fixed detached sessions being checked in during multi-read cursor ops.
v2.1.0
- New: Support for multi-document, multi-collection transactions. See
MongoConnMgr.runInTxn()
. - New: Retryable read and retryable write support via logical sessions, for robustness.
- New:
zlib
msg compression now supported via theOP_COMPRESSION
cmd. - New: Connections now linger before being closed (by
maxIdleTimeMS
) to avoid socket throttling during bursts of activity. - New:
db()
andcoll()
convenience methods onMongoColl
andMongoIdx
. - New:
appname
is now supported in Mongo connection URLs and passed to MongoDB handshakes. - Chg: Exposed new
MongoConnUrl
class with connection URL options. - Chg: Refactored the structure of
MongoConnMgr
and re-assessed its methods (breaking backwards compatibility).
v2.0.0
- New: Everything!
- Chg: Class names have been abbreviated and start with a
Mongo
prefix.
v1.1
v1.1.14
- New: Updated to be compatible with Fantom 1.0.77.
- Chg: Connections are no longer closed if there are more messages queued up to use the pool.
- Chg: When
TcpConnection
throws anIOErr
on TCP connection, the cause is no longer lost.
v1.1.12
- New: Added
ConnectionManagerPooled.isConnectedToMaster()
. - Chg: Exposed ConnectionManager in
Collection
andDatabase
classes. - Chg: Better handling of network IO errors.
- Bug: Fixed potential deadlock during failovers.
v1.1.10
- New: Support for MongoDB 4.2 and dodgy MongoDB Altas clusters.
- New: Added
ssl
andauthSource
MongoDB connection option. - New: Contains UberPod meta data.
- Chg: Database connections authenticate against the
authSource
, not themselves. - Chg: Fixed
Cursor.count()
to work with MongoDB 4.2.
v1.1.8
- New:
Collection.deleteAll()
convenience method. - Chg:
skip
andlimit
values are clamped at 0 to prevent negative values - which cause server errors.
v1.1.6
- Chg:
Collection.update()
returns a map of update data and not just the number of docs updated. (Potential breaking change.)
v1.1.4
- Bug: Failover did not occur when a host simply went offline and refused connections.
v1.1.2
- New: Proper fail over in the event of lost connections. Ensure your MongoDB URL has multiple host nodes.
- New: Should the Master Mongo connection switch / fail over to a replica node, the Connection Manager automatically plays "Hunt the Primary" to re-establish connection with the new Master.
- Chg: Re-jigged the signature of
Collection.create()
. (Potential breaking change.) - Chg: Exposed
MongoCmdErr
and addedcode()
anderrmsg()
helper methods. - Chg:
PooledConnectionManager.minPoolSize
now defaults to 1 (used to be 0).
v1.1.0
- New:
PrettyPrinter
for printing MongoDB documents. - New:
Index.TEXT
for creatingtext
indexes. - Chg: Replaced
Cursor.fields
withCursor.projection
. (Breaking change.) - Chg: Exposed some advanced use classes.
- Chg: Removed deprecated MongoDB 2.6 methods.
v1.0
v1.0.10
- Bug:
Database.collectionNames()
didn't work with MongoDB v3.2+ and WiredTiger storage.
v1.0.8
- New:
Collection.runCmd(...)
to run arbitrary commands against collections. - Chg: Updates to
Collections
andIndexes
to work with MongoDB v3.2+ and WiredTiger storage. - Chg: Created a couple
xxx26()
methods that now only with MongoDB v2.6. - Bug: Creating unique indexes didn't work.
v1.0.6
- New: SCRAM-SHA-1 over SASL - New authentication protocol for MongoDB 3.x.
- Chg: Updated
journal
in write concern toj
. - Chg: Allowed some
Collection
methods to take null queries.
v1.0.4
- Chg: Changed the signature of
Collection.mapReduce()
to makeout
default to inline. (Breaking change.)
v1.0.2
- New: Updated for MongoDB 3.x.
- Chg: Added
fieldNames
parameter tofindAll()
- see Issue #1. - Chg: Made the
deleteMulti()
,insertMulti()
andupdateMulti()
methods inCollection
public. - Chg: Documented some
options
parameters.
v1.0.0
- New: Support for connecting to Replica Sets via multiple hosts in the Mongo connection URL. All read and write operations performed on the primary.
- New: Support for the
waitQueueTimeoutMS
Mongo connection URL option with a truncated binary exponential backoff algorithm to wait for available connections. - New: Support for write concern options in the Mongo connection URL.
- New: Support for
connectTimeoutMS
andsocketTimeoutMS
Mongo URL connection options. - Chg: The default write concern has moved out of MongoClient / Database / Collection / User and into the ConnectionManager.
- Chg:
Cursor.count
now takes into accountskip
andlimit
. - Chg: Renamed
ConnectionManager.mongoUri
->ConnectionManager.mongoUrl
. - Chg: Index keys must be ordered if they contain more than one entry.
- Chg: Better Err msg if could not connect to MongoDB.
- Bug:
Cursor.count
threw an Err if the query was ordered.
v0.0
v0.0.6
- Bug:
Index.ensure()
when comparing indexes did not respectunique:false
.
v0.0.4
- New:
ConnectionManagerPooled
instances are created with a Mongo Connection URI. - New:
ConnectionManagerPooled
accepts default database and user credentails to initially authenticate all leased connections with.
v0.0.2
- New: Preview Release