Docs Home → Develop Applications → MongoDB Manual
Release Notes for MongoDB 3.4![](/docs/v5.2/assets/link.svg)
On this page
Note
MongoDB 3.4 Released Nov 29, 2016
MongoDB 3.4 is now available. Key features include linearizable read concerns, views, and collation.
OpsManager 3.4 is also available. See the Ops Manager documentation and the Ops Manager Release Notes for more information.
Patch Releases![](/docs/v5.2/assets/link.svg)
3.4.24 - Jan 27, 2020![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-37772: Platform Support: Add Community & Enterprise RHEL 8 x64
SERVER-37135: TLSVersionCounts needs to track and report TLS 1.3
SERVER-36315: After stepdown the CSRS dist lock manager keeps trying to unlock locks
SERVER-37846: writeConcern can be satisfied with an arbiter if the write was committed
SERVER-38945: SSL performance regression
SERVER-40355: rs.config that contains an _id greater than the number of nodes will crash
SERVER-43151: Error in aggregation assertion at value.cpp:1368
SERVER-44050: Arrays along 'hashed' index key path are not correctly rejected
WT-4956: Handle the case where 4 billion updates are made to a page without eviction
3.4.23 - Sep 16, 2019![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-36394: mongos should reset chunk size tracking information when autosplit = false or splitvector returns too few split points
SERVER-41829: findAndModify ignores filter expressions that are not objects
SERVER-42055: Only acquire a collection IX lock to write the lastVote document
3.4.22 - Aug 6, 2019![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-17010: Reduce file handle usage in File based Sorter.
SERVER-38984: Attach IDs to users (CVE-2019-2386).
SERVER-42089: Platform Support: Remove Enterprise RHEL 6.7 zSeries
Note
Fixed issues include those that resolve the following Common Vulnerabilities and Exposures (CVEs):
CVE-2019-2386 (See SERVER-38984)
CVE-2019-2389 (See SERVER-40563)
CVE-2019-2390 (See SERVER-42233)
3.4.21 - Jun 14, 2019![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-39820: Add the client IP address to the successful authentication log message
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
WT-4615: Sync backup file before returning backup cursor
3.4.20 - Mar 13, 2019![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-39166: $graphLookup should force a pipeline to split in sharded cluster
SERVER-39723: Change listIndexes command behavior to show in-progress index builds
TOOLS-2158: mongodump failing on Windows with "error opening system CA store: Access is denied."
3.4.19 - Jan 28, 2019![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-18985: setParameter should log at level 0
SERVER-22766: Dynamic oplog sizing for WiredTiger nodes
SERVER-33469: Make syslog log lines consistent with mongod log lines
SERVER-37132: Negation of $in with regex can incorrectly plan from the cache, leading to missing query results
SERVER-37182: Different values when referencing whole object vs. a field of that object after $arrayToObject
SERVER-37616: Implement tuneable batch size for the rangedeleter
3.4.18 - Nov 7, 2018![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-25175: listIndexes shouldn't include in-progress background indexes
SERVER-35418: Allow specifying CAs for incoming and outgoing connections separately.
SERVER-36944: applyOps does not permit unknown field names when creating a v:1 index.
SERVER-37058: Update with numeric field names inside an array can cause validation to fail.
3.4.17 - Sep 7, 2018![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-33857 Missing log redaction due to confusion with Command::redactForLogging().
SERVER-34846 Covered index with collated field returns incorrect result when collation not involved in match or sort.
SERVER-36010 Change log messages for Windows stacktraces to use error() or severe() rather than log().
SERVER-34558: Add SSL_version to client metadata logging.
3.4.16 - Jul 10, 2018![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-32999: Platform Support: Remove Debian 7 builds.
SERVER-29301: Upgrade MozJS to ESR 45.9.0
SERVER-5461: Add
syncSourceHost
field toreplSetGetStatus
output.
3.4.15 - May 16, 2018![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-31535: Platform Support: remove Ubuntu 12.04 builds.
SERVER-32923: Platform Support: remove SLES11 builds.
SERVER-20056: Log a startup warning if wiredTigerCacheSizeGB is > 80% of RAM.
SERVER-28981: Sharding balancer prefers shards in a specific order when moving chunks.
3.4.14 - March 20, 2018![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-28151: Authentication database should be synced first during an initial sync.
SERVER-32886: Unnecessary sleeps during chunk migration.
SERVER-32933: Allow
mongod
to start when unable to reach LDAP server.
3.4.13 - Feb 10, 2018![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-33238: Prevent WiredTiger read ticket count from going negative.
3.4.12 - Feb 8, 2018![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-31437: Fix parsing of
mongo host/db
connect string.SERVER-32875: Don't stall ftdc due to running out of tickets.
SERVER-33089: Unable to start queryable mongod because it failed to regenerate index for
admin.system.users
.
3.4.11 - Jan 31, 2018![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-19605: Oplog timeout should be configurable.
SERVER-19919: Chunks that exceed 250000 docs but are under half chunk size get marked as jumbo.
SERVER-29293: Recipient shard fails to abort migration on stepdown.
SERVER-32001: unindexing a key in a partial unique index may cause server crash
3.4.10 - Oct 31, 2017![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-15723: Avoid G_X lock for rename_collection within database
SERVER-31049: View with collation doesn't work as expected in sharded cluster
SERVER-29287: Upgrade pcre to 8.41
SERVER-31204: Calling
shardCollection
afterenableSharding
may fail if executed against different mongos
3.4.9 - Sept 11, 2017![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-20392: Sharding an existing small collection results in large number of chunks
SERVER-30189: Reduce calls to allocator for large $in expressions
SERVER-30487: RangeDeleter holds WT transaction open while waiting for majority
SERVER-30636: Range deleter assert failed because of replication lag
3.4.7 -- Aug 8, 2017![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-29282: BSON Document Size can be exceeded when grouping inserts on SECONDARY nodes
SERVER-29568: Enable configuration of OpenSSL cipher suite via
setParameter
SERVER-29817: Optimize incremental update performance of ChunkManager and CollectionMetadata
3.4.6 -- Jul 5, 2017![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-27347: Only close idle cached cursors on the WiredTiger ident that is busy.
SERVER-29618:
$geoWithin
in aggregation pipeline after$lookup
and$unwind
returns incorrect results.WT-3362: Cursor opens should never block for the duration of a checkpoint.
3.4.5 -- Jun 14, 2017![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-28952: Multikey indexes should not be eligible for DISTINCT_SCAN if distinct key is an array component.
SERVER-28427: GlobalLock with timeout can still block indefinitely.
SERVER-29018
mongos
can segfault ingetMore
on views with find batchSize of 0.
3.4.4 -- Apr 21, 2017![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-18794: Add an aggregation operator
$objectToArray
to convert an object to an array of key, value pairs.SERVER-23310: Add an aggregation operator
$arrayToObject
to convert an array of pairs to an object.SERVER-22611: ChunkManager refresh can occasionally cause a full reload.
3.4.3 -- Mar 28, 2017![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-27863: Reschedule firing of early alarms in NetworkInterfaceASIO to avoid
mongos
crash.SERVER-28017:
$ne
should respect collection's default collation.SERVER-27700: Improve WiredTiger performance on secondary when cache is full.
3.4.2 -- Feb 1, 2017![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-27125: Arbiters in pv1 should vote no in elections if they can see a healthy primary of equal or greater priority to the candidate.
SERVER-27584 Add support for filter to listDatabases
WT-2670 Inefficient I/O when read full DB (poor readahead)
3.4.1 -- Dec 20, 2016![](/docs/v5.2/assets/link.svg)
Issues fixed:
SERVER-27124: Disallow
readConcern: majority
reads on replica set protocolVersion 0 (pv0).SERVER-27201: $graphLookup triggers null pointer dereference.
SERVER-27207: Find operation with a sort on a view via
mongos
may incorrectly return empty result set.SERVER-27213: Two
$match
pipeline stages can combine incorrectly to produce incorrect results.
Sharded Cluster![](/docs/v5.2/assets/link.svg)
Membership Awareness![](/docs/v5.2/assets/link.svg)
Starting in 3.4, sharded cluster components (shards, config servers,
mongos
instances) recognize their membership in a sharded
cluster, including the name of the sharded cluster, the location of the
config servers.
To support this awareness:
shardsvr
RequirementFor a 3.4 sharded cluster,
mongod
instances for the shards must explicitly specify its role as ashardsvr
, either via the configuration file settingsharding.clusterRole
or via the command line option--shardsvr
.- 3.4
mongos
Incompatibility with Earlier Versions ofmongod
- Version 3.4
mongos
instances cannot connect to earlier versions ofmongod
instances.
Balancer on Config Server Primary![](/docs/v5.2/assets/link.svg)
The balancer process has moved from the mongos
to the
primary member of the config server replica set. Associated with this
change:
The primary of the CSRS config server holds the
"balancer"
lock, using a process id named"ConfigServer"
, which is never released.MongoDB 3.4 adds:
balancerStart
command and updates the 3.4mongo
shell methodsh.startBalancer()
to wrap the new command. A 3.2 or earliermongo
shell methodsh.startBalancer()
is incompatible with a 3.4 sharded cluster.balancerStop
command and updates the 3.4mongo
shell methodsh.stopBalancer()
to wrap the new command. A 3.2 or earliermongo
shell methodsh.stopBalancer()
is incompatible with a 3.4 sharded cluster.balancerStatus
command.
MongoDB 3.4 deprecates
mongo
shell methodsh.getBalancerHost()
. A 3.2 or earliermongo
shell methodsh.getBalancerHost()
is incompatible with a 3.4 sharded cluster.MongoDB 3.4 removes the following configuration options from the
mongos
:sharding.chunkSize
configuration file setting and--chunkSize
command-line optionsharding.autoSplit
configuration file setting and--noAutoSplit
command-line option
Faster Balancing![](/docs/v5.2/assets/link.svg)
Starting in MongoDB 3.4:
For WiredTiger, the default value
secondaryThrottle
isfalse
for all chunk migrations. The balancer does not wait for replication to a secondary and instead continues with the next document.MongoDB can perform parallel chunk migrations. Similar to earlier versions, a shard can participate in at most one migration at a time. Observing this restriction, for a sharded cluster with n shards, MongoDB can perform at most n/2 (rounded down) simultaneous chunk migrations.
Removal of Support for SCCC Config Servers![](/docs/v5.2/assets/link.svg)
3.4 sharded clusters no longer support the use of mirrored (SCCC)
mongod
instances as config servers. The use of SCCC config
servers, deprecated in the 3.2 release, is no longer valid. Instead,
deploy your config servers as a replica set (CSRS).
To upgrade your sharded cluster to version 3.4, the config servers must be running as a replica set.
To convert your existing config servers from SCCC to CSRS, see the Upgrade Config Servers to Replica Set.
Sharding Zones![](/docs/v5.2/assets/link.svg)
MongoDB 3.4 introduces Zones, which supersedes tag-aware sharding available in earlier versions.
To support zones, MongoDB introduces the following commands and
mongo
shell helpers:
Replica Set![](/docs/v5.2/assets/link.svg)
Default Journaling Behavior of majority
Write Concern![](/docs/v5.2/assets/link.svg)
A new replica set configuration setting
writeConcernMajorityJournalDefault
determines whether an
acknowledgement for a write concern of majority
returns after the majority of the voting members apply
the write in memory or to the on-disk journal if the j
option is unspecified in the write concern.
Adjustable Catchup Period for Newly Elected Primary![](/docs/v5.2/assets/link.svg)
A new replica set configuration setting
settings.catchUpTimeoutMillis
defines the time limit for a
newly elected primary to catch up with the other replica set members
that may have more recent writes.
Linearizable Read Concern![](/docs/v5.2/assets/link.svg)
MongoDB 3.4 introduces a read concern level of
"linearizable"
to read data that reflects all successful
writes issued with a "majority"
and acknowledged
prior to the start of the read operation. Linearizable read concern
guarantees only apply if read operations specify a query filter that
uniquely identifies a single document.
Linearizable read concern is available for all MongoDB supported storage engines.
Combined with "majority"
write concern,
"linearizable"
read concern enables multiple threads to
perform reads and writes on a single document as if a single thread
performed these operations in real time; that is, the corresponding
schedule for these reads and writes is considered linearizable.
Reads with linearizable read concern may be significantly slower than
reads with "majority"
or "local"
read
concerns. Always use maxTimeMS
with linearizable read concern, in
case a majority of data bearing members are unavailable. For example:
db.restaurants.find( { _id: 5 } ).readConcern("linearizable").maxTimeMS(10000) db.runCommand( { find: "restaurants", filter: { _id: 5 }, readConcern: { level: "linearizable" }, maxTimeMS: 10000 } )
For more information on read concern, including operations that support read concerns, see Read Concern.
Improved Initial Sync![](/docs/v5.2/assets/link.svg)
MongoDB 3.4 improves the performance of initial sync by having initial sync build the indexes as the documents are copied.
MongoDB 3.4 improves the initial sync retry logic to be more resilient to intermittent failures on the network.
To avoid potential data corruption, MongoDB 3.4 fails and restarts initial sync if a collection is renamed on the sync source during the initial sync. With MongoDB 3.2.11 or earlier, initial syncs did not fail and restart but instead continued the process, which could lead to potential data corruption.
For details, see Initial Sync and
renameCollection
.Modified
replSetGetStatus
command to accept the optionalinitialSync: 1
in the command to report on initial sync status and progress if run on the secondary:db.adminCommand( { replSetGetStatus: 1, initialSync: 1 } )
Decimal Type![](/docs/v5.2/assets/link.svg)
3.4 adds support for the decimal128 format with
the new decimal
data type. The decimal128 format supports numbers with
up to 34 decimal digits (i.e. significant digits) and an exponent range
of −6143 to +6144.
To support the format, the mongo
shell adds the
NumberDecimal wrapper.
db.inventory.insert( {_id: 1, item: "The Scream", price: NumberDecimal("9.99"), quantity: 4 } )
When performing comparisons among different numerical types, MongoDB performs comparison on the exact stored numerical values without first converting values to a common type.
Unlike the double
data type, which only stores an approximation of
the decimal values, the decimal
data type stores the exact value.
For example, a decimal
NumberDecimal("9.99")
has a precise
value of 9.99
where as a double 9.99
would have an approximate
value of 9.9900000000000002131628...
.
To test for decimal
type, use the $type
operator with the
literal "decimal"
or 19
.
db.inventory.find( { price: { $type: "decimal" } } )
To use the new decimal
data type with a MongoDB driver, an upgrade
to a driver version that supports the feature is necessary.
Aggregation![](/docs/v5.2/assets/link.svg)
New Aggregation Stage for Recursive Search![](/docs/v5.2/assets/link.svg)
3.4 introduces a stage to the aggregation pipeline that allows for recursive search.
Stage | Description |
---|---|
Performs a recursive search on a collection. To each output
document, adds a new array field that contains the traversal
results of the recursive search for that document. |
Tip
New Aggregation Stages for Faceted Search![](/docs/v5.2/assets/link.svg)
Faceted search allows for the categorization of documents into classifications. For example, given a collection of inventory documents, you may want to classify items by a single category, such as by the price range, or by multiple categories, such as by price range as well as separately by the departments.
3.4 introduces stages to the aggregation pipeline that allow for faceted search.
Stage | Description |
---|---|
Categorizes or groups incoming documents into buckets that
represent a range of values for a specified expression. | |
Categorizes or groups incoming documents into specified number
of buckets that represent a range of values for a specified
expression. MongoDB automatically determines the bucket
boundaries. | |
Processes multiple pipelines on
the input documents and outputs a document that contains the
results of these pipelines. By specifying facet-related stages
( $bucket , $bucketAuto , and
$sortByCount ) in these pipelines, $facet
allows for multi-faceted search. | |
Categorizes or groups incoming documents by a specified
expression to compute the count for each group. Output documents
are sorted in descending order by the count. |
New Aggregation Stages to Facilitate Reshaping Documents![](/docs/v5.2/assets/link.svg)
3.4 introduces stages to the aggregation pipeline that faciliate replacing documents as well as adding new fields.
Stage | Description |
---|---|
Adds new fields to documents. The stage outputs documents that
contains all existing fields from the input documents as well as
the newly added fields. | |
Replaces a document with the specified document. You can specify
a document embedded in the input document to promote the
embedded document to the top level. |
New Aggregation Stage to Count![](/docs/v5.2/assets/link.svg)
3.4 introduces a new stage to the aggregation pipeline that faciliate counting document.
Stage | Description |
---|---|
Returns a document that contains a count of the number of
documents input to the stage. |
New Aggregation Array Operators![](/docs/v5.2/assets/link.svg)
Operator | Description |
---|---|
Returns a boolean that indicates if a specified value is in an
array. | |
Searches an array for an occurrence of a specified value and
returns the array index (zero-based) of the first occurrence. | |
Returns an array whose elements are a generated sequence of
numbers. | |
Returns an output array whose elements are those of the input
array but in reverse order. | |
Takes an array as input and applies an expression to each
element in the array to return the final result of the
expression. | |
Returns an output array where each element is itself an array,
consisting of elements in the corresponding array index position
from the input arrays. |
New Aggregation String Operators![](/docs/v5.2/assets/link.svg)
Operator | Description |
---|---|
Searches a string for an occurrence of a substring and returns
the UTF-8 byte index (zero-based) of the first occurrence. | |
Searches a string for an occurrence of a substring and returns
the UTF-8 code point index
(zero-based) of the first occurrence. | |
Splits a string by a specified delimiter into string components
and returns an array of the string components. | |
Returns the number of UTF-8 bytes for a string. | |
Returns the number of UTF-8 code points for a string. | |
Returns the substring of a string. The substring starts with the
character at the specified UTF-8 byte index (zero-based) in the
string for the length specified. | |
Returns the substring of a string. The substring starts with the
character at the specified UTF-8 code point index
(zero-based) in the string for the length specified. |
New Aggregation Control Flow Expression![](/docs/v5.2/assets/link.svg)
Operator | Description |
---|---|
Evaluates, in sequential order, the case expressions of the
specified branches to enter the first branch for which the
case expression evaluates to true . |
New Date Aggregation Operators![](/docs/v5.2/assets/link.svg)
Operator | Description |
---|---|
Returns the ISO 8601 weekday number, ranging from 1 (for
Monday) to 7 (for Sunday). | |
Returns the ISO 8601 week number, which can range from 1 to
53 . Week numbers start at 1 with the week (Monday
through Sunday) that contains the year's first Thursday. | |
Returns the ISO 8601 year number, where the year starts with the
Monday of week 1 (ISO 8601) and ends with the Sundays of the
last week (ISO 8601). |
New Monitoring Aggregation Sources![](/docs/v5.2/assets/link.svg)
Operator | Description |
---|---|
Returns statistics regarding a collection or view. |
New Type Operator![](/docs/v5.2/assets/link.svg)
Operator | Description |
---|---|
Returns a string which specifies the
BSON Types of the argument. |
Additional Changes![](/docs/v5.2/assets/link.svg)
$project
stage adds support for field exclusion in the
output document. Previously, you could only exclude the _id
field
in the stage. If you specify the exclusion of a field or fields,
All other fields are returned in the output documents.
You cannot specify new fields or the inclusion of other fields.
Collation and Case-Insensitive Indexes![](/docs/v5.2/assets/link.svg)
To allow for language-specific rules for string comparison, MongoDB 3.4 introduces collation to its query language and indexes.
The following operations support collation:
Commands | mongosh Methods |
---|---|
cursor.collation() to specify collation for
db.collection.find() | |
Individual update, replace, and delete operations in
db.collection.bulkWrite() . |
For details, see Collation.
[1] | (1, 2) Some index types do not support collation. See Collation and Unsupported Index Types for details. |
Views![](/docs/v5.2/assets/link.svg)
MongoDB 3.4 adds support for creating read-only views from existing collections or other views. To specify or define a view, MongoDB 3.4 introduces:
the
viewOn
andpipeline
options to the existingcreate
command:db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline> } ) or if specifying a default collation for the view:
db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline>, collation: <collation> } ) and a corresponding
mongo
shell helperdb.createView()
:db.createView(<view>, <source>, <pipeline>, <collation>)
For more information on creating views, see Views.
Security Enhancement![](/docs/v5.2/assets/link.svg)
Transition to Auth![](/docs/v5.2/assets/link.svg)
MongoDB 3.4 adds support for rolling transition to internal
authentication for replica sets and sharded clusters. For details, see
security.transitionToAuth
setting and --transitionToAuth
command line option for mongod
and mongos
.
User Roles Changes![](/docs/v5.2/assets/link.svg)
The privileges of the following built-in roles no longer apply to the
local
and config
databases:
Role | Change |
---|---|
Starting in 3.4, to provide read privileges on the local
database, create a user in the admin database with
read role in the local database. See also
clusterManager and clusterMonitor role
for access to the config and local databases. | |
Starting in 3.4, to provide readWrite privileges on the
local database, create a user in the admin database with
readWrite role in the local database. See also
clusterManager and clusterMonitor role
for access to the config and local databases. | |
Starting in 3.4, to provide dbAdmin privileges on the
local database, create a user in the admin database with
dbAdmin role in the local database. See also
clusterManager and clusterMonitor role
for access to the config and local databases. |
Correspondingly, the following built-in roles include additional read
and write privileges on local
and config
databases:
MongoDB Tools![](/docs/v5.2/assets/link.svg)
mongoreplay
![](/docs/v5.2/assets/link.svg)
MongoDB introduces mongoreplay
, a workload capture and
analysis tool that replaces mongosniff
. You can use
mongoreplay
to inspect and record commands sent to a MongoDB
instance, and then replay the commands back onto another host at a
later time.
mongoreplay
is available for Linux and macOS.
General Enhancements![](/docs/v5.2/assets/link.svg)
MongoDB 3.4 includes the following enhancements:
Added
systemd
support in distributions.Increased
diagnosticDataCollectionDirectorySizeMB
default size to 200 megabytes from 100 megabytes.Decreased the lower bound and the default setting of the
WiredTiger internal cache
. Both theWiredTiger Storage Engine internal cache
and theinMemory Storage Engine maximum memory size
can accept floating-point values.find()
,aggregate()
,listIndexes
, andlistCollections
operations return a maximum of 16 megabytes per batch.
db.currentOp()
and the
database profiler report the same
basic diagnostic information for all CRUD operations, including the
following:
getMore
(OP_GET_MORE andcommand
)
These operations are also included in the logging of slow queries (see
slowOpThresholdMs
for more information about slow query logging).mongo
shell adds support for marshalling fields of type javascript and javascriptWithScope to JavaScript functions. See--disableJavaScriptProtection
.Added support for system certificates. If a
mongod
instance presents a certificate signed with a CA trusted by the operating system, themongo
shell will connect without any errors. Previously, themongo
shell exited with an error that it could not validate the certificate.Added message compression support for internal communication between members of a replica set or a sharded cluster as well as communication between
mongo
shell andmongod
ormongos
.See configuration
net.compression.compressors
setting as well as the--networkMessageCompressors
option formongod
,mongos
, and themongo
shell.Upgraded the SpiderMonkey JavaScript engine to 45.0.2 ESR.
Platform Support![](/docs/v5.2/assets/link.svg)
MongoDB 3.4 introduces support for ARM64, PPC64LE, and s390x architectures. See Supported Platforms to see the full platform support matrix.
Starting in version 3.4, MongoDB removes support for Red Hat Enterprise Linux 5.
For earlier MongoDB Enterprise versions that support Ubuntu 16.04 POWER/PPC64LE:
Due to a lock elision bug present in older versions
of the glibc
package on Ubuntu 16.04 for POWER, you must
upgrade the glibc
package to at least glibc 2.23-0ubuntu5
before running MongoDB. Systems with older versions of the
glibc
package will experience database server crashes and
misbehavior due to random memory corruption, and are unsuitable
for production deployments of MongoDB
The following summarizes the supported architecture for the latest version of MongoDB products:
Product | x86_64/amd64 | s390x | POWER8 (little endian) | ARMv8-A |
---|---|---|---|---|
MongoDB 3.4 | ✓ | MongoDB Enterprise only | MongoDB Enterprise only | ✓ |
✓ | ✓ | ✓ | ||
✓ | ||||
✓ | ||||
✓ | ||||
Automation Agent | ✓ | ✓ | ||
Monitoring Agent | ✓ | ✓ | ||
Backup Agent | ✓ | ✓ |
For details, refer to the individual documentation for the products.
MongoDB Enterprise Features![](/docs/v5.2/assets/link.svg)
Log Redaction![](/docs/v5.2/assets/link.svg)
MongoDB Enterprise adds support for log redaction for use in conjunction with MongoDB's encrypted storage engine. Log redaction prevents potentially sensitive information from being written to the diagnostic log; however, diagnostics on redacted logs may be more difficult due to the lack of data related to a log event.
To enable log redaction, see the
security.redactClientLogData
setting and the
--redactClientLogData
option for mongod
.
LDAP Enhancements![](/docs/v5.2/assets/link.svg)
LDAP Authorization![](/docs/v5.2/assets/link.svg)
MongoDB Enterprise supports the use of Lightweight Directory Access Protocol (LDAP) service to authorize (i.e. determine access) a user authenticated via one of the following authentication mechanism:
LDAP Proxy Authentication. For a tutorial on using both LDAP Authentication and Authorization, see Authenticate and Authorize Users Using Active Directory via Native LDAP.
Kerberos Authentication. For a tutorial on using Kerberos authentication and Active Directory, see Configure MongoDB with Kerberos Authentication and Active Directory Authorization.
For more information, see LDAP Authorization.
mongoldap
![](/docs/v5.2/assets/link.svg)
MongoDB Enterprise provides a new tool mongoldap
for testing
your MongoDB LDAP configuration options
against a running LDAP server or set of servers. When configuring
options related to LDAP authentication, you can
use mongoldap
to ensure that the authentication operation
works as expected.
Bind via OS Libraries![](/docs/v5.2/assets/link.svg)
MongoDB 3.4 supports binding to an LDAP server via operating system libraries. This allows Linux and Windows MongoDB 3.4 servers to use an LDAP server for authentication.
Linux MongoDB deployments continue to support binding via saslauthd.
Changes Affecting Compatibility![](/docs/v5.2/assets/link.svg)
Some changes can affect compatibility and may require user actions. For a detailed list of compatibility changes, see Compatibility Changes in MongoDB 3.4.
Upgrade Procedures![](/docs/v5.2/assets/link.svg)
If you need guidance on upgrading to 3.4, MongoDB offers major version upgrade services to help ensure a smooth transition without interruption to your MongoDB application.
Download![](/docs/v5.2/assets/link.svg)
To download the MongoDB 3.4, go to the MongoDB Download Center
Tip
See also:
Known Issues in 3.4.0![](/docs/v5.2/assets/link.svg)
List of known issues in the 3.4.0 release:
SERVER-27124:
protocolVersion: 0
cannot properly support"majority"
read concern.SERVER-27195: Using collation with documents containing fields of BSON type
Symbol
, which is deprecated, is not supported and may lead to undefined behavior.SERVER-27207: Find on view with sort through
mongos
may incorrectly return empty result set.WT-3327: Checkpoints can hang if time runs backwards (e.g. on a system with an unreliable clock). (Fixed in MongoDB 3.4.6.)