Release Notes for MongoDB 3.6
On this page
- Patch Releases
- Security
- Aggregation
- Array Update Operator Enhancements
- 3.6 Compatible Drivers
- Change Streams
- Client Sessions
- Server Sessions
- JSON Schema
- Replica Sets
- Sharded Clusters
- General Enhancements
- Changes Affecting Compatibility
- Upgrade Procedures
- Download
- Known Issues in 3.6.3
- Known Issues in 3.6.2
- Known Issues in 3.6.1
- Known Issues in 3.6.0
- Report an Issue
Patch Releases
3.6.23 - Mar 19, 2021
Issues Fixed:
SERVER-40361: Reduce memory footprint of plan cache entries
SERVER-46686: Explain does not respect maxTimeMS
SERVER-50267: Set output limit for 'rawMongoProgramOutput()'
TOOLS-2803: [v3.6] Add --config option for password values
3.6.22 - Feb 8, 2021
Issues Fixed:
SERVER-32437: Platform Support: add Amazon Linux 2
SERVER-33747: Arbiter tries to start data replication if cannot find itself in config after restart
SERVER-52654: new signing keys not generated by the monitoring-keys-for-HMAC thread
SERVER-52680: Removed node on startup stuck in STARTUP2 after being re-added into the replica set
SERVER-53026: Secondary cannot restart replication
3.6.21 - Nov 16, 2020
Issues Fixed:
SERVER-26726: Check number of arguments for createIndex() and throw error if more than two arguments
SERVER-34243: listCollections should not require a MODE_S database lock
SERVER-49986: Convert isMaster command to hello and add aliases
SERVER-50736: Make OpenSSL explicitly accept SNIs presented in ClientHello
SERVER-51120: Find queries with MERGE_SORT incorrectly sort the results when the collation is specified
3.6.20 - Sep 14, 2020
Issues Fixed:
SERVER-40317: $facet execution has no limit on how much memory it can consume
SERVER-41600: IndexCatalog::refreshEntry should invalidate the index from the CollectionInfoCache
SERVER-43233: Add ability to request only specific attribute(s) for the LDAP groups
SERVER-48709: signing key generator thread on config server not waken up as expected
SERVER-48993: explodeForSort can produce incorrect query plan
3.6.19 - Jul 23, 2020
Issues Fixed:
SERVER-46487 The mongos routing for scatter/gather ops can have unbounded latency
SERVER-45610 Some reads work while system is RECOVERING
SERVER-47695 Write commands run by threads that can survive rollback can fail operationTime invariant in ServiceEntryPoint
SERVER-47994 Fix for numerical overflow in GeoHash
SERVER-47686 Upgrade static OpenSSL to 1.1.1g
3.6.18 - May 1, 2020
Issues fixed:
SERVER-46466: Race with findAndModify retryable write and session migration
SERVER-45935: [3.6] WT error handler incorrectly prints “An unsupported journal format detected”
SERVER-45418: DocumentSourceCursor batching memory accounting does not account for empty documents, leads to unbounded memory use for count-like aggregates
SERVER-45363: Issue with mongodb text indexes and weights when using wildcard specifier
SERVER-35050: Don’t abort collection clone due to negative document count
Note
Fixed issues include those that resolve the following Common Vulnerabilities and Exposure (CVE):
CVE-2020-7921 (See SERVER-45472)
3.6.17 - Jan 27, 2020
Issues fixed:
SERVER-42565: Aggregations and find commands sort missing fields differently
SERVER-44733: Change stream should throw ChangeStreamFatalError if a single shard cannot be targeted for updateLookup
SERVER-44174: $push and $addToSet should restrict memory usage
SERVER-37772: Platform Support: Add Community & Enterprise RHEL 8 x64
SERVER-45396: fix the "me" field in isMaster responses when using splithorizon
WT-5042: Reduce configuration parsing overhead from checkpoints
3.6.16 - Dec 6, 2019
Issues fixed:
SERVER-38002: Upgrade Pcre to at least 8.42
SERVER-35463: Mark listCommands as pre-auth
SERVER-44584: Rewriting updates as modifications incorrectly considers logging state
3.6.15 - Nov 6, 2019
Issues fixed:
SERVER-39004: Introduce a quota mechanism for the overflow file
SERVER-38994: Step down on SIGTERM
SERVER-40355: rs.config that contains an _id greater than the number of nodes will crash
SERVER-43074: Do not use a global variable to encode 'multikeyPath' information when writing out catalog documents
WT-4869: Stop adding cache pressure when eviction is falling behind
3.6.14 - Aug 26, 2019
Issues fixed:
SERVER-36443: Long-running queries should not cause a build-up of unused ChunkManager objects
SERVER-38945: SSL performance regression
SERVER-40134: Distinct command against a view can return incorrect results when the distinct path is multikey
SERVER-42055: Only acquire a collection IX lock to write the lastVote document
SERVER-42603: Recent service file change may cause cyclic dependencies
SERVER-42089: Platform Support: Remove Enterprise RHEL 6.7 zSeries
WT-4803: Implement file_max configuration for Cache Overflow mechanism
Note
Fixed issues include those that resolve the following Common Vulnerabilities and Exposures (CVEs):
CVE-2019-2389 (See SERVER-40563)
CVE-2019-2390 (See SERVER-42233)
3.6.13 - Jun 10, 2019
Issues fixed:
SERVER-16571: Use Actual Memory Constraint vs. Total System Memory When They Differ
SERVER-38984: Attach IDs to users
SERVER-41213: Unique background index builds may produce inconsistent keys
SERVER-37765: Platform Support: Remove Ubuntu 14.04
SERVER-37774: Platform Support: Remove Enterprise Ubuntu 16.04 PPCLE
Note
Fixed issues include those that resolve the following Common Vulnerabilities and Exposures (CVEs):
CVE-2019-2386 (See SERVER-38984)
3.6.12 - April 8, 2019
Issues fixed:
SERVER-35219: Regain MongoDB balancer performance with sessions
SERVER-39847: Migrating session info can trigger fassert when destination shard has transaction history truncated by oplog
SERVER-37255: replSetReconfig with concurrent election can trigger invariant
SERVER-39394: Views collation check should traverse through nested $lookup pipelines
SERVER-39487: Aggregation operator $sqrt output for NumberDecimal is the same as $exp
SERVER-37722: Quiet mode does not suppress connection end events
3.6.11 - Mar 1, 2019
Issues fixed:
SERVER-32146: Log slow oplog entry application
SERVER-9043: Link
flushRouterConfig
on the config server and shardsSERVER-37624: Sessions never expire when you change value of localLogicalSessionTimeoutMinutes
SERVER-38344: Early release of distributed database locks during initial collection sharding results in migration/split failures
SERVER-39166: $graphLookup should force a pipeline to split in sharded cluster
3.6.10 - Jan 22, 2019
Issues fixed:
SERVER-29825: Do not allow rename from unreplicated to replicated DB or vice-versa
SERVER-35936: MongoDB Community installer fails to install Compass
SERVER-36977: Initial mongod.log is created using umask vs mode 600
SERVER-37080: Implement
tuneable batch size for chunk migrations
SERVER-37616: Implement
tuneable batch size for the rangedeleter
SERVER-37182: Different values when referencing whole object vs. a field of that object after $arrayToObject
SERVER-37200: $match stage following $listSessions not working against mongos
3.6.9 - Nov 16, 2018
Issues fixed:
SERVER-32943: Query during background index build can lead to suboptimal cached plan
SERVER-35657: Do not delay journal flushes when operations are waiting for oplog visibility
SERVER-37058: Update with numeric field names inside an array can cause validation to fail
SERVER-37132: Negation of $in with regex can incorrectly plan from the cache, leading to missing query results
3.6.8 - Sep 19, 2018
Issues fixed:
SERVER-34204: Tailable cursor fails on getMore against a sharded cluster.
SERVER-34846: Covered index with collated field returns incorrect result when collation not involved in match or sort.
SERVER-37002: Dropping a collection with long index names via rename fails under MMAPv1.
SERVER-36149: Fix privileges on setFCV virtual namespace.
3.6.7 - Aug 25, 2018
Issues fixed:
SERVER-27725: Use batch insert when migrating chunks
SERVER-36070: Aggregation with $out results in error when Auditing is enabled
TOOLS-2075: mongoreplay always replays to secondary
3.6.6 - Jul 10, 2018
Issues fixed:
SERVER-33538:
mapReduce
"replace" on a sharded output collection can lead to UUIDCatalog inconsistencies.SERVER-32999: Platform Support: Remove Debian 7 builds.
SERVER-5461 Add
syncSourceHost
field toreplSetGetStatus
output.
3.6.5 - May 29, 2018
Issues fixed:
SERVER-34746: Segmentation fault when shard is started with
--shardsvr
before being added to a shard.SERVER-34423: collMod interruption may cause invariant failure.
SERVER-34390: MongoDB binaries for macOS support TLS 1.2.
SERVER-29463: Platform Support: add Debian 9 "stretch".
SERVER-34399: $changeStream with invalid resume token crashes the server.
SERVER-29301: Upgrade MozJS to ESR 45.9.0.
3.6.4 - Apr 13, 2018
Issues fixed:
SERVER-28670: Add sharding metadata refresh metrics section to serverStatus.
SERVER-32677: Segmentation fault converting ReplicaSet to Replicated Shard Cluster.
SERVER-33763: 3.6 drivers fail to communicate with 3.6 sharded clusters running at fCV 3.4.
SERVER-32923: Remove SLES11 support.
SERVER-31535: Remove Ubuntu 12.04 support.
SERVER-32498:
currentOp
output no longer returnsthreadId
field.
3.6.3 - February 23, 2018
Issues fixed:
SERVER-32441: 3.6
mongod
crash on find with index and nested$and
/$or
.SERVER-32606: Tailing oplog on secondary fails with CappedPositionLost
SERVER-32631: specifying
--bind_ip
localhost results in error "address already in use"
3.6.2 - January 10, 2018
Issues fixed:
SERVER-31267: CollectionCloner fails if collection is dropped between getMore calls.
SERVER-31625: The contents of
Unknown macro: {USER}
needs to be escaped when querying for the groups using LDAP server.SERVER-31684: QueryPlanKilled (operation exceeded time limit) in $changeStream with updateLookup.
SERVER-31982: Shard does not call config commit chunk migration command with majority writeConcern nor checks for writeConcern errors..
SERVER-32246: PID file permission on v3.6 make it not monitorable using pid file.
SERVER-32255: UUIDs may be absent from shard secondary local collections.
SERVER-32282: Aggregation text search returns text score even if it wasn't requested when targeting multiple shards in a sharded cluster.
SERVER-32396
mongo
shell failed to connect with 3.6 connection string SRVSERVER-32430: DocumentSourceSort sorts array documents incorrectly if there is a non-simple collation.
SERVER-32529: Requiring replSet for shards breaks Queryable Backup.
3.6.1 - Dec 26, 2017
Issues fixed:
SERVER-30768: Primary queries using maxTimeMS cause temporary shard write unavailability if ExceededTimeLimit.
SERVER-31225: The
mongod
process forks before listening for connections.SERVER-31885: changeStream cursor is not returned on a
mongos
when the database does not exist.SERVER-32085: changeStream reports incorrect documentKey for unsharded collections that become sharded.
SERVER-32046: Arrays of certain NumberDecimals can trigger an invariant failure.
SERVER-32048: Updates using a numeric path component may cause index entries not to be created.
Security
Default Bind to Localhost
MongoDB binaries, mongod
and
mongos
, bind to localhost
by default.
MONGODB-CR
Deprecation
As of MongoDB 3.6, MONGODB-CR
authentication mechanism is
deprecated.
Authentication Restrictions
To restrict database user connections to specified IP addresses, added
authenticationRestrictions
parameter to the following:
Additional Security Enhancements
Added the
opensslCipherConfig
parameter to control the OpenSSL ciphers when using TLS/SSL encryption.If authentication is turned on, you can only issue a
getMore
against cursors you created.Added the
convertToCapped
action torestore
role.
Aggregation
The following features are available starting in MongoDB 3.6.
More Expressive $lookup
$lookup
adds support for specifying multiple join
conditions as well as uncorrelated sub-queries by allowing variable
specification and pipeline execution on the joined collection.
For details, see the $lookup
syntax for
Join Conditions and Subqueries on a Joined Collection.
New Aggregation Stages
MongoDB 3.6 adds the following new aggregation pipeline stages:
Operator | Description |
---|---|
Returns a stream of documents containing information
on active and/or dormant operations on a mongod
instance. Uses the new aggregation helper
db.aggregate() . | |
Lists server sessions in the system.sessions collection in the
config database. Uses the new aggregation helper
db.aggregate() . | |
Lists server sessions cached in memory by the server. |
New Aggregation Operators
Operator | Description |
---|---|
Converts an array of key value pairs to a document. | |
Converts a document to an array of documents representing
key-value pairs. | |
Combines multiple documents into a single document. | |
Converts a date/time string to a date object. | |
Constructs a BSON Date object given the date's constituent
parts. | |
Returns a document containing the constituent parts of a date. |
New Aggregation Helper
MongoDB 3.6 adds a helper, db.aggregate()
, to perform
aggregations that do not rely on an underlying collection, such
as those that start with $currentOp
or
$listLocalSessions
.
New Aggregation Variable
REMOVE
allows for the conditional exclusion of a field.
New Options
aggregate
command and the
db.collection.aggregate()
method support the following new options:
hint
option to specify the index to use.Note
The
hint
does not apply to$lookup
and$graphLookup
stages.comment
option to help trace the operation through the database profiler, currentOp, and logs.
Support for Time Zones
MongoDB 3.6 adds support for time zones to aggregation date operators.
Array Update Operator Enhancements
arrayFilters
The following commands and methods can accept an arrayFilters
parameter to specify which elements to modify in an array field:
Commands | Methods |
---|---|
Multi-Element Array Updates
MongoDB 3.6 adds the following new positional operators for update operations on arrays and nested arrays:
The all positional
$[]
operator updates all elements in an array.The filtered positional
$[<identifier>]
operator updates all elements in an array that match thearrayFilters
criteria.
Negative Array Index Position for push
The $position
modifier for the $push
update operator
can accept a negative array index value to indicate a position starting
from the end of the array.
3.6 Compatible Drivers
The following drivers are feature compatible with MongoDB 3.6:
Java 3.6+ Python 3.6+ C 1.9+ Go 1.8+ | C# 2.5+ Node 3.0+ Ruby 2.5+ Rust 2.1+ Swift 1.2+ | Perl 2.0+ PHPC 1.4+ Scala 2.2+ C++ 3.6.6+ |
DNS-constructed Seedlist mongodb+srv
In addition to the standard connection format, the 3.6 drivers support a DNS-constructed seedlist. For more information, see SRV Connection Format.
Change Streams
MongoDB 3.6 supports opening change streams against replica sets and sharded clusters with replica set shards.
Change streams allow applications to access real-time data changes without the complexity and risk of tailing the oplog. Applications can use change streams to subscribe to all data changes on a collection and respond to those changes.
You can open a change stream from any 3.6-series driver using the
db.collection.watch()
method. See the documentation for
your preferred driver for complete instructions on usage.
See Change Streams for more information.
Important
To use change streams, featureCompatibilityVersion
must be set to
"3.6". For more information, see Get FeatureCompatibilityVersion and
setFeatureCompatibilityVersion
.
Client Sessions
Causal Consistency
To provide causal consistency, MongoDB 3.6 enables causal consistency in client sessions. A causally consistent client session denotes that the associated sequence of read and acknowledged write operations have a causal relationship that is reflected by their ordering. Client applications must ensure that only one thread at a time executes these operations in a client session.
Applications can start a client session and associate operations with a specific session. Applications must ensure that only one thread at a time executes these operations in a client session.
Important
To use client sessions:
Clients require MongoDB drivers updated for MongoDB 3.6.
featureCompatibilityVersion
must be "3.6". For more information, see Get FeatureCompatibilityVersion andsetFeatureCompatibilityVersion
.
Retryable Writes
Important
For retryable writes:
Clients require MongoDB drivers updated for MongoDB 3.6.
featureCompatibilityVersion
must be "3.6". For more information, see Get FeatureCompatibilityVersion andsetFeatureCompatibilityVersion
.
Starting in MongoDB 3.6, certain acknowledged write operations on replica sets and sharded clusters are "retryable" to provide handling of transient network errors or replica set elections.
With retryable writes, MongoDB drivers automatically retries these
operations upon encountering network errors or encountering a
replica set failover during which
time the replica set has no primary. To enable retryable writes for the
3.6 drivers, see retryWrites
.
As the retry attempt is made only once, the retryable feature can help address transient network errors but not persistent network errors.
For more information on retryable writes, see Retryable Writes.
mongo
Shell Changes
MongoDB 3.6 adds the new command-line option --retryWrites
to the mongo
shell. The option enables Retryable Writes
in the mongo
shell.
The following new methods have been added to the Mongo()
connection
object in the mongo
shell:
Mongo.isCausalConsistency()
Various
Session()
methodsVarious
SessionOptions()
methods
Server Sessions
MongoDB's server sessions, or logical sessions, are the underlying framework used by client sessions to support Causal Consistency and retryable writes.
Important
Applications use client sessions to interface with server sessions.
Server sessions are available for standalone mongod
instances, replica sets, and sharded clusters.
Server Session Commands
Starting in 3.6, MongoDB drivers associate all operations with a server session, with the exception of unacknowledged writes. If the deployment enforces authentication/authorization, server sessions are associated with the authenticated users.
The following commands can be used to list, manage, and kill server sessions throughout MongoDB clusters:
Commands | Descriptions |
---|---|
Expires specified server sessions. | |
Kills all server sessions. | |
Kills all server sessions that match the specified pattern. | |
Kills specified server sessions. | |
Refreshes idle server sessions. | |
Starts a new server session. |
Parameters
The following new parameters are available for server sessions:
logicalSessionRefreshMinutes
(replaced withlogicalSessionRefreshMillis
in 3.6.9)
Aggregation Stages
To support server sessions, MongoDB 3.6 adds the following new aggregation pipeline stages:
Operator | Description |
---|---|
Lists the server sessions in the system.sessions collection in the
config database. | |
Lists the server sessions cached in memory by the server. Uses
the new aggregation helper db.aggregate() . |
General
serverStatus
returns information on the number of
logicalSessionRecordCache.
Command Options
Starting in 3.6, MongoDB drivers associate all operations with a server session, with the exception of unacknowledged writes. The following options are available for all commands to support association with a server session:
Important
mongosh
and the drivers assign these options
to the commands in the session.
Option | Type | Description |
---|---|---|
lsid | Document | The document that specifies the unique ID of the session
associated with the command. If the txnNumber is
specified, the lsid is required. |
txnNumber | 64-bit integer | A strictly increasing non-negative number that uniquely identifies the command in the command's session. If specified, the command must also include the |
For the delete
, insert
, and update
commands that take an array of statements, the following option is also
available:
Important
Do not manually set stmtIds
. MongoDB sets the stmtIds
to be strictly increasing non-negative numbers.
Option | Type | Description |
---|---|---|
stmtIds | Array of 32-bit integers | Array of numbers that uniquely identify their respective
write operations within the write command. |
JSON Schema
MongoDB 3.6 adds the $jsonSchema
operator to support
document validation using JSON
Schema. For details, see $jsonSchema
.
To use $jsonSchema
, featureCompatibilityVersion
must be
set to "3.6".
Replica Sets
Deprecate replica set protocol version 0 (
pv0
). For more information on the replica set protocol versions, see Replica Set Protocol Version.Added the
replSetResizeOplog
command to dynamically resize a replica set member's oplog. Available for instances running the WiredTiger storage engine.Added the catchUpTakeoverDelayMillis configuration option, dictating the amount of time a node waits to run for election after determining that it is ahead of the current primary.
For replica sets that use the protocol version 1 (
pv1
), arbiters will vote no in elections if they detect a healthy primary of equal or greater priority to the candidate. For more information on replica set protocol versions, see Replica Set Protocol Version.Added the
oplogInitialFindMaxSeconds
parameter to adjust how long a member of a replica set should wait for itsfind
command to finish during data synchronization.Added the
waitForSecondaryBeforeNoopWriteMS
parameter to specify how long a secondary must wait if theafterClusterTime
is greater than the last applied time from the oplog.Added support for running the following during a replica set member's initial sync:
$out
stages in aggregation pipelinesMap-reduce jobs that output to a new collection
Sharded Clusters
Starting in 3.6, shards must be replica sets. To upgrade your sharded cluster to version 3.6, the shard servers must be running as a replica set.
Starting in 3.6, all members of a shard replica set, not just the primary, maintain the metadata regarding chunk metadata. This prevents reads from the secondaries from returning orphaned data when not using
"available"
read concern.Added
ShardingTaskExecutorPoolMaxConnecting
parameter formongos
to control the rate at whichmongos
adds connections to amongod
instance.Added
orphanCleanupDelaySecs
that determines the minimum delay before a migrated chunk is deleted from the source shard.The
config.system.sessions
collection in theconfig
database may now be sharded.
General Enhancements
MongoDB Compass Packaging
The MongoDB Server download is packaged with a platform-specific installation script for MongoDB Compass Community Edition. This script installs MongoDB Compass as part of the MongoDB Server installation process.
Collection Identifier
Collections have an immutable unique identifier. The featureCompatibilityVersion
must be set
to "3.6"
.
New Query Operators
MongoDB 3.6 adds the following new query operators:
The new
$jsonSchema
operator matches documents that validate against the given JSON Schema. To use$jsonSchema
,featureCompatibilityVersion
must be set to "3.6".The
$expr
allows the use of aggregation expressions within the query language.
Removed Operators
MongoDB 3.6 removes the deprecated $pushAll
update operator. For more
information, see Remove $pushAll
Update Operator.
Indexes
An index can cover a query on fields within nested documents.
Multikey indexes can cover queries over non-array keys if the index tracks which fields make it multikey.
When creating an index, you cannot specify
*
as the name of the index. See Indexes Named*
.
Commands
Added the following options to the
listDatabases
command:nameOnly
to return only the database names (which does not require database locks) instead of returning both the database names and size information (which does require database locks).filter
to return databases that match the specified match criteria on the outputs.
Modified behavior of the
validate
command and thedb.collection.validate()
method such that only forfull
validation does the WiredTiger storage engine force a checkpoint, flush all in-memory data to disk, then verify the on-disk data. See alsovalidate
Operation.The
<database>.system.profile
entry forupdate
anddelete
contains the entire update/delete document applied to the named collection.dropDatabase
waits until all collections drops in the database have propagated to a majority of the replica set members.For commands run on replica sets and sharded clusters, the response documents include the
operationTime
and$clusterTime
. Seedb.runCommand()
anddb.adminCommand()
.Deprecated getPrevError command.
Wire Protocol and Compression
MongoDB 3.6 introduces a new wire protocol opcode called
OP_MSG
. This opcode's message format is extensible and designed to subsume the functionality of other opcodes.MongoDB 3.6 adds support for the
zlib
compressor for--networkMessageCompressors
option (ornet.compression.compressors
setting if using the configuration file).--networkMessageCompressors
option (ornet.compression.compressors
setting) enables network compression for communication amongmongod
,mongos
,mongo
shell, and drivers that support theOP_COMPRESSED
message format.mongod
andmongos
enable network compression by default withsnappy
as the compressor. For more information on network compression, seenet.compression.compressors
.
Read Concern
New
"available"
read concern is available. For unsharded collections (including collections in a standalone deployment or a replica set deployment),"local"
and"available"
read concerns behave identically. For sharded clusters,"available"
provides greater tolerance for partitions but may return orphan documents if the shard is undergoing chunk migrations.Starting in MongoDB 3.6, MongoDB enables support for "majority" read concern by default.
For MongoDB 3.6.1 - 3.6.x, you can disable read concern "majority" to prevent the storage cache pressure from immobilizing a deployment with a primary-secondary-arbiter (PSA) architecture. Disabling "majority" read concern also disables support for change streams
For more information, see Disable Read Concern Majority.
FTDC
MongoDB 3.6 adds support for Diagnostics Capture (also known as FTDC
) in
mongos
. [1] In previous versions, the feature is available for
mongod
only. See Diagnostic Parameters.
Note
FTDC is enabled by default.
[1] | MongoDB 3.4.14+ also adds mongos support for FTDC. |
Additional Enhancements
MongoDB 3.6 includes the following enhancements:
Added support for specifying full Unix domain socket paths with
--bind_ip
.mongod
now offers a--timeZoneInfo
option. Use this option to specify the path to your system time zone database. The default configuration file included with Linux and macOS packages sets this to/usr/share/zoneinfo
.Date operations now accept consistent date ranges across all supported operating systems. You may safely work with years in the range
0
through9999
.The new
honorSystemUmask
startup option formongod
causes new files created by MongoDB to have the read/write permissions specified by the umask of the user who runs themongod
process. Only available on Linux and macOS systems.The maxWriteBatchSize limit of a database, which indicates the maximum number of write operations permitted in a write batch, raises from
1,000
to100,000
.The
planCacheListPlans
database command produces the same output as thePlanCache.getPlansByQuery()
shell method. The output from both operations now includes a timestamp for when the plans were generated.The new
KeysRotationIntervalSec
server parameter specifies the number of seconds for which an HMAC signing key is valid before rotating to the next one.The
find
command's optionoplogReplay
now supports the$eq
operator.
Changes Affecting Compatibility
Some changes can affect compatibility and may require user actions. For a detailed list of compatibility changes, see Compatibility Changes in MongoDB 3.6.
Upgrade Procedures
Important
Feature Compatibility Version 3.4
To upgrade, the 3.4 instances must have
featureCompatibilityVersion
set to 3.4. To check the version:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
For specific details on verifying and setting the
featureCompatibilityVersion
as well as information on other
prerequisites/considerations for upgrades, refer to the individual
upgrade instructions:
If you need guidance on upgrading to 3.6, MongoDB offers major version upgrade services to help ensure a smooth transition without interruption to your MongoDB application.
Download
To download the MongoDB 3.6, go to the MongoDB Download Center
Known Issues in 3.6.3
- WT-3724:
- MongoDB 3.6 is not tested on APFS, the new filesystem in macOS 10.13 and may encounter errors.
Operations that build in-memory structures are not causally consistent; however, only some operations return errors when associated with causally consistent sessions. See Causal Consistency Limitations.
Known Issues in 3.6.2
- SERVER-31760:
$expr
does not use indexes for equality match against field, including when used as part of a$lookup
aggregation stage with foreign pipeline.
- WT-3724:
- MongoDB 3.6 is not tested on APFS, the new filesystem in macOS 10.13 and may encounter errors.
Operations that build in-memory structures are not causally consistent; however, only some operations return errors when associated with causally consistent sessions. See Causal Consistency Limitations.
Known Issues in 3.6.1
- SERVER-31760:
$expr
does not use indexes for equality match against field, including when used as part of a$lookup
aggregation stage with foreign pipeline.
- WT-3724:
- MongoDB 3.6 is not tested on APFS, the new filesystem in macOS 10.13 and may encounter errors.
Operations that build in-memory structures are not causally consistent; however, only some operations return errors when associated with causally consistent sessions. See Causal Consistency Limitations.
Known Issues in 3.6.0
- SERVER-31760:
$expr
does not use indexes for equality match against field, including when used as part of a$lookup
aggregation stage with foreign pipeline.
- TOOLS-1827:
- When using a URI with SRV, fetched TXT records will be ignored if no query parameters are specified in the command line URI. To get around this, explicitly specify the TLS/SSL setting used to communicate with the database (either ssl=true or ssl=false) in the URI query string.
- WT-3724:
- MongoDB 3.6 is not tested on APFS, the new filesystem in macOS 10.13 and may encounter errors.
Operations that build in-memory structures are not causally consistent; however, only some operations return errors when associated with causally consistent sessions. See Causal Consistency Limitations.
Report an Issue
To report an issue, see https://github.com/mongodb/mongo/wiki/Submit-Bug-Reports for instructions on how to file a JIRA ticket for the MongoDB server or one of the related projects.