const classafMongo::MongoConnUrl
sys::Obj afMongo::MongoConnUrl
Parses a Mongo Connection URL into known options.
If user credentials are supplied, they are used as default authentication for each connection.
The following URL options are supported:
ssltlsconnectTimeoutMSsocketTimeoutMScompressorszlibCompressionLevelminPoolSizemaxPoolSizewaitQueueTimeoutMSmaxIdleTimeMSwwtimeoutMSjournalauthSourceauthMechanismauthMechanismPropertiesappNameretryWritesretryReadsdisableTxns(unofficial)
URL examples:
mongodb://username:password@example1.com/database?maxPoolSize=50mongodb://example2.com?minPoolSize=10&maxPoolSize=50&ssl=true
See https://www.mongodb.com/docs/manual/reference/connection-string/.
- appName
const Str? appNameThe application name this client identifies itself to the MongoDB server as. Used by MongoDB when logging.
mongodb://example.com/puppies?appName=WattsApp
- authMechs
const Str:MongoAuthMech authMechs := ...The auth mechanisms used for authenticating connections.
- compressors
const Str[] compressorsA list of compressors, as understood by this driver and presented to the MongoDB server. Any options supplied to the MongoURL and not understood by this driver will not be present in this list.
mongodb://example.com/puppies?compressors=snappy,zlib
Mongo understands
snappy,zlib',zstd, but currently this driver ONLY understandszlib.This option may be used to disable wire compression, by suppling an empty list.
mongodb://example.com/puppies?compressors=
If not defined, this defaults to
["zlib"].- connectTimeout
const Duration? connectTimeoutThe amount of time to attempt a socket connection before timing out. If
null(the default) then a system timeout is used.mongodb://example.com/puppies?connectTimeoutMS=25000
Equates to inet::SocketOptions.connectTimeout.
- connectionUrl
const Uri connectionUrlThe original URL this class was initialised with. May contain authentication details.
mongodb://username:password@example1.com/puppies?maxPoolSize=50
- dbName
const Str? dbNameThe default database name - taken from the path.
mongodb://example1.com/<database>
- disableTxns
const Bool disableTxnsAn "unofficial" option that can be useful for development.
Transactions CANNOT be run against standalone MongoDB servers (MongoDB raises errors).
This option switches transactions off, and instead executes the txnFn outside of a transaction. This means the same app code may be used in both standalone and clustered environments.
mongodb://example.com/puppies?disableTxns=true
This option exists because MongoDB does NOT provide a sure-fire way of identifying standalone instances. Plus, automatically disabling txns could be dangerous and give the user a false sense of security.
- fromUrl
new fromUrl(Uri connectionUrl)Parses a Mongo Connection URL.
- maxIdleTime
const Duration maxIdleTime := 10secThe maximum time a connection can remain idle in the pool before being removed and closed. (This does NOT override minPoolSize.)
This helps ease connection throttling during bursts of activity.
Defaults to 10sec.
mongodb://example.com/puppies?maxIdleTimeMS=15000
- maxPoolSize
const Int maxPoolSize := 10The maximum number of database connections the pool is allowed to open. This is the maximum number of concurrent users you expect your application to have.
Defaults to 10.
mongodb://example.com/puppies?maxPoolSize=10
- minPoolSize
const Int minPoolSize := 1The minimum number of database connections the pool should keep open.
Defaults to 1.
mongodb://example.com/puppies?minPoolSize=50
- mongoCreds
const MongoCreds? mongoCredsThe credentials (if any) used to authenticate connections against MongoDB.
- retryReads
const Bool retryReadsAn option to turn off retryable reads. (Defaults to
true).mongodb://example.com/puppies?retryReads=false
- retryWrites
const Bool retryWritesAn option to turn off retryable writes. (Defaults to
true).mongodb://example.com/puppies?retryWrites=false
- socketTimeout
const Duration? socketTimeoutThe amount of time to attempt a send or receive on a socket before timing out.
null(the default) indicates an infinite timeout.mongodb://example.com/puppies?socketTimeoutMS=25000
Equates to inet::SocketOptions.receiveTimeout.
- tls
const Bool tls := falseSpecifies a TLS / SSL connection. Set to
truefor Mongo Atlas databases.Defaults to
false.mongodb://example.com/puppies?tls=true mongodb://example.com/puppies?ssl=true
- waitQueueTimeout
const Duration waitQueueTimeout := 12secThe maximum time a thread can wait for a connection to become available.
Defaults to 12 seconds.
mongodb://example.com/puppies?waitQueueTimeoutMS=12000
- writeConcern
const [Str:Obj?]? writeConcernThe default write concern for all write operations. Set by specifying the
w,wtimeoutMSandjournalconnection string options.mongodb://username:password@example1.com/puppies?w=1&wtimeout=0&j=false
- zlibCompressionLevel
const Int? zlibCompressionLevelThe compression level (0 - 9) to use with zlib (0 = No compression, 1 = Best speed, 9 = Best compression).
nullindicates a default value will be used.mongodb://example.com/puppies?zlibCompressionLevel=8