Configuration File Options

The following page describes the configuration options available inMongoDB 4.2. For configuration file options for other versions ofMongoDB, see the appropriate version of the MongoDB Manual.

Configuration File

You can configure mongod and mongos instances atstartup using a configuration file. The configuration file containssettings that are equivalent to the mongod andmongos command-line options. See Configuration File Settings and Command-Line Options Mapping.

Using a configuration file makes managing mongod andmongos options easier, especially for large-scaledeployments. You can also add comments to the configuration file toexplain the server’s settings.

Default Configuration File

  • On Linux, a default /etc/mongod.conf configuration file isincluded when using a package manager to install MongoDB.
  • On Windows, a default <install directory>/bin/mongod.cfgconfiguration file is included during the installation.
  • On macOS, a default /usr/local/etc/mongod.conf configurationfile is included when installing from MongoDB’s official Homebrew tap.

File Format

Changed in version 2.6: MongoDB 2.6 introduced a YAML-based configuration file format.The 2.4 configuration file format remains for backwardcompatibility.

MongoDB configuration files use the YAML format[1].

The following sample configuration file contains several mongodsettings that you may adapt to your local configuration:

Note

YAML does not support tab characters for indentation: use spaces instead.

  1. systemLog:
  2. destination: file
  3. path: "/var/log/mongodb/mongod.log"
  4. logAppend: true
  5. storage:
  6. journal:
  7. enabled: true
  8. processManagement:
  9. fork: true
  10. net:
  11. bindIp: 127.0.0.1
  12. port: 27017
  13. setParameter:
  14. enableLocalhostAuthBypass: false
  15. ...

The Linux package init scripts included in the official MongoDB packages dependon specific values for systemLog.path, storage.dbPath, andprocessManagement.fork. If you modify these settings in the defaultconfiguration file, mongod may not start.

[1]YAML is a superset of JSON.

Externally Sourced Values

New in version 4.2: MongoDB supports usingexpansion directives in configurationfiles to load externally sourced values. Expansion directives canload values for specificconfiguration file optionsor load theentire configuration file.

The following expansion directives are available:

Expansion DirectiveDescription
__restAllows users to specify a REST endpoint as the external sourcefor configuration file options or the full configuration file.If the configuration file includes the __restexpansion, on Linux/macOS, the read access to the configuration file must be limitedto the user running the mongod/mongosprocess only.
__execAllows users to specify a shell or terminal command as theexternal source for configuration file options or thefull configuration file.If the configuration file includes the __execexpansion, on Linux/macOS, the write access to the configuration file must belimited to the user running themongod/mongos process only.

For complete documentation, see Externally Sourced Configuration File Values.

Use the Configuration File

To configure mongod or mongos using a config file,specify the config file with the —config option or the-f option, as in the following examples:

For example, the following uses mongod —config<configuration file>mongos —config<configuration file>:

  1. mongod --config /etc/mongod.conf
  2.  
  3. mongos --config /etc/mongos.conf

You can also use the -f alias to specify the configurationfile, as in the following:

  1. mongod -f /etc/mongod.conf
  2.  
  3. mongos -f /etc/mongos.conf

If you installed from a package and have started MongoDB using yoursystem’s init script, you are already using a configurationfile.

Expansion Directives and —configExpand

If you are using expansion directivesin the configuration file, you must include the—configExpand option when startingthe mongod or mongos. For example:

  1. mongod --config /etc/mongod.conf --configExpand "rest,exec"
  2. mongos --config /etc/mongos.conf --configExpand "rest,exec"

If the configuration file includes an expansion directive and you startthe mongod/mongos without specifyingthat directive in the —configExpandoption, the mongod/mongos fails to start.

For complete documentation, see Externally Sourced Configuration File Values.

Core Options

systemLog Options

  1. systemLog:
  2. verbosity: <int>
  3. quiet: <boolean>
  4. traceAllExceptions: <boolean>
  5. syslogFacility: <string>
  6. path: <string>
  7. logAppend: <boolean>
  8. logRotate: <string>
  9. destination: <string>
  10. timeStampFormat: <string>
  11. component:
  12. accessControl:
  13. verbosity: <int>
  14. command:
  15. verbosity: <int>
  16.  
  17. # COMMENT additional component verbosity settings omitted for brevity
  • systemLog.verbosity
  • Type: integer

Default: 0

Changed in version 3.0.

The default log messageverbosity level for components. Theverbosity level determines the amount of Informational andDebug messages MongoDB outputs. [2]

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.To use a different verbosity level for a named component, use thecomponent’s verbosity setting. For example, use thesystemLog.component.accessControl.verbosity to set theverbosity level specifically for ACCESS components.

See the systemLog.component.<name>.verbosity settings forspecific component verbosity settings.

For various ways to set the log verbosity level, seeConfigure Log Verbosity Levels.

[2]Starting in version 4.2, MongoDB includes the Debug verbosity level(1-5) in the log messages. For example,if the verbosity level is 2, MongoDB logs D2. In previousversions, MongoDB log messages only specified D for Debug level.

  • systemLog.quiet
  • Type: boolean

Run mongos or mongod in a quiet mode that attempts to limit the amountof output.

systemLog.quiet is not recommended for production systems as it may maketracking problems during particular connections much more difficult.

  • systemLog.traceAllExceptions
  • Type: boolean

Print verbose information for debugging. Use for additional logging forsupport-related troubleshooting.

  • systemLog.syslogFacility
  • Type: string

Default: user

The facility level used when logging messages to syslog.The value you specify must be supported by youroperating system’s implementation of syslog. To use this option, youmust set systemLog.destination to syslog.

  • systemLog.path
  • Type: string

The path of the log file to which mongod or mongos should send all diagnosticlogging information, rather than the standard output or the host’ssyslog. MongoDB creates the log file at the specified path.

The Linux package init scripts do not expect systemLog.path to change from thedefaults. If you use the Linux packages and change systemLog.path, you will haveto use your own init scripts and disable the built-in scripts.

  • systemLog.logAppend
  • Type: boolean

Default: false

When true, mongos or mongod appends new entries to the end of the existing log file when the mongos or mongodinstance restarts. Without this option, mongod will back up theexisting log and create a new file.

  • systemLog.logRotate
  • Type: string

Default: rename

New in version 3.0.0.

The behavior for the logRotate command.Specify either rename or reopen:

  • rename renames the log file.

  • reopen closes and reopens the log file following the typicalLinux/Unix log rotate behavior. Use reopen when using theLinux/Unix logrotate utility to avoid log loss.

If you specify reopen, you must also set systemLog.logAppend to true.

  • systemLog.destination
  • Type: string

The destination to which MongoDB sends all log output. Specify eitherfile or syslog. If you specify file, you must also specifysystemLog.path.

If you do not specify systemLog.destination, MongoDB sendsall log output to standard output.

Warning

The syslog daemon generates timestamps when it logs a message, notwhen MongoDB issues the message. This can lead to misleading timestampsfor log entries, especially when the system is under heavy load. Werecommend using the file option for production systems to ensureaccurate timestamps.

  • systemLog.timeStampFormat
  • Type: string

Default: iso8601-local

The time format for timestamps in log messages. Specify one of thefollowing values:

ValueDescriptionctimeDisplays timestamps as Wed Dec 3118:17:54.811.iso8601-utcDisplays timestamps in Coordinated Universal Time (UTC) in theISO-8601 format. For example, for New York at the start of theEpoch: 1970-01-01T00:00:00.000Ziso8601-localDisplays timestamps in local time in the ISO-8601format. For example, for New York at the start of the Epoch:1969-12-31T19:00:00.000-0500

systemLog.component Options

  1. systemLog:
  2. component:
  3. accessControl:
  4. verbosity: <int>
  5. command:
  6. verbosity: <int>
  7.  
  8. # COMMENT some component verbosity settings omitted for brevity
  9.  
  10. replication:
  11. verbosity: <int>
  12. election:
  13. verbosity: <int>
  14. heartbeats:
  15. verbosity: <int>
  16. initialSync:
  17. verbosity: <int>
  18. rollback:
  19. verbosity: <int>
  20. storage:
  21. verbosity: <int>
  22. journal:
  23. verbosity: <int>
  24. recovery:
  25. verbosity: <int>
  26. write:
  27. verbosity: <int>

Note

Starting in version 4.2, MongoDB includes the Debug verbosity level(1-5) in the log messages. For example,if the verbosity level is 2, MongoDB logs D2. In previousversions, MongoDB log messages only specified D for Debug level.

  • systemLog.component.accessControl.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related toaccess control. See ACCESS components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.command.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related tocommands. See COMMAND components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.control.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related tocontrol operations. See CONTROL components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.ftdc.verbosity
  • Type: integer

Default: 0

New in version 3.2.

The log message verbosity level for components related todiagnostic data collection operations. See FTDC components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.geo.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related togeospatial parsing operations. See GEO components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.index.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related toindexing operations. See INDEX components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.network.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related tonetworking operations. See NETWORK components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.query.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related toquery operations. See QUERY components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.replication.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related toreplication. See REPL components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.replication.election.verbosity
  • Type: integer

Default: 0

New in version 4.2.

The log message verbosity level for components related toelection. See ELECTION components.

If systemLog.component.replication.election.verbosity is unset,systemLog.component.replication.verbosity level also applies toelection components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.replication.heartbeats.verbosity
  • Type: integer

Default: 0

New in version 3.6.

The log message verbosity level for components related toheartbeats. See REPL_HB components.

If systemLog.component.replication.heartbeats.verbosity is unset,systemLog.component.replication.verbosity level also applies toheartbeats components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.replication.initialSync.verbosity
  • Type: integer

Default: 0

New in version 4.2.

The log message verbosity level for components related toinitialSync. See INITSYNC components.

If systemLog.component.replication.initialSync.verbosity is unset,systemLog.component.replication.verbosity level also applies toinitialSync components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.replication.rollback.verbosity
  • Type: integer

Default: 0

New in version 3.6.

The log message verbosity level for components related torollback. See ROLLBACK components.

If systemLog.component.replication.rollback.verbosity is unset,systemLog.component.replication.verbosity level also applies torollback components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.sharding.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related tosharding. See SHARDING components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.storage.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related tostorage. See STORAGE components.

If systemLog.component.storage.journal.verbosity is unset,systemLog.component.storage.verbosity level also applies tojournaling components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.storage.journal.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related tojournaling. See JOURNAL components.

If systemLog.component.storage.journal.verbosity isunset, the journaling components have the same verbosity level as theparent storage components: i.e. either thesystemLog.component.storage.verbosity level ifset or the default verbosity level.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.storage.recovery.verbosity
  • Type: integer

Default: 0

New in version 4.0.

The log message verbosity level for components related torecovery. See RECOVERY components.

If systemLog.component.storage.recovery.verbosity is unset,systemLog.component.storage.verbosity level also applies torecovery components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.transaction.verbosity
  • Type: integer

Default: 0

New in version 4.0.2.

The log message verbosity level for components related totransaction. See TXN components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.
  • systemLog.component.write.verbosity
  • Type: integer

Default: 0

New in version 3.0.

The log message verbosity level for components related towrite operations. See WRITE components.

The verbosity level can range from 0 to 5:

  • 0 is the MongoDB’s default log verbosity level, to includeInformational messages.
  • 1 to 5 increases the verbosity level to includeDebug messages.

processManagement Options

  1. processManagement:
  2. fork: <boolean>
  3. pidFilePath: <string>
  4. timeZoneInfo: <string>
  • processManagement.fork
  • Type: boolean

Default: false

Enable a daemon mode that runs the mongos or mongod process in thebackground. By default mongos or mongod does not run as a daemon:typically you will run mongos or mongod as a daemon, either by usingprocessManagement.fork or by using a controlling process that handles thedaemonization process (e.g. as with upstart and systemd).

The processManagement.fork option is not supported on Windows.

The Linux package init scripts do not expect processManagement.fork to change from thedefaults. If you use the Linux packages and change processManagement.fork, you will haveto use your own init scripts and disable the built-in scripts.

  • processManagement.pidFilePath
  • Type: string

Specifies a file location to store the process ID (PID) of the mongos or mongodprocess . The user running the the mongod or mongosprocess must be able to write to this path. If the processManagement.pidFilePath option is notspecified, the process does not create a PID file. This option is generallyonly useful in combination with the processManagement.fork setting.

Linux

On Linux, PID file management is generally the responsibility ofyour distro’s init system: usually a service file in the /etc/init.ddirectory, or a systemd unit file registered with systemctl. Onlyuse the processManagement.pidFilePath option if you are not using one of these initsystems. For more information, please see the respectiveInstallation Guide for your operating system.

macOS

On macOS, PID file management is generally handled by brew. Only usethe processManagement.pidFilePath option if you are not using brew on your macOS system.For more information, please see the respectiveInstallation Guide for your operating system.

  • processManagement.timeZoneInfo
  • Type: string

The full path from which to load the time zone database. If this optionis not provided, then MongoDB will use its built-in time zone database.

The configuration file included with Linux and macOS packages sets the timezone database path to /usr/share/zoneinfo by default.

The built-in time zone database is a copy of the Olson/IANA time zonedatabase. It is updated along with MongoDBreleases, but the release cycle of the time zone database differs from therelease cycle of MongoDB. A copy of the most recent release of the time zonedatabase can be downloaded fromhttps://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip.

cloud Options

New in version 4.0.

  1. cloud:
  2. monitoring:
  3. free:
  4. state: <string>
  5. tags: <string>
  • cloud.monitoring.free.state
  • Type: string

New in version 4.0: Available for MongoDB Community Edition.

Enables or disables free MongoDB Cloud monitoring. cloud.monitoring.free.state accepts the followingvalues:

runtimeDefault. You can enable or disable free monitoring duringruntime.

To enable or disable free monitoring during runtime, seedb.enableFreeMonitoring() anddb.disableFreeMonitoring().

To enable or disable free monitoring during runtime whenrunning with access control, users must have requiredprivileges. See db.enableFreeMonitoring() anddb.disableFreeMonitoring() for details.onEnables free monitoring at startup; i.e. registers for freemonitoring. When enabled at startup, you cannot disable freemonitoring during runtime.offDisables free monitoring at startup, regardless of whetheryou have previously registered for free monitoring. When disabled at startup,you cannot enable free monitoring during runtime.

Once enabled, the free monitoring state remains enabled untilexplicitly disabled. That is, you do not need to re-enable each timeyou start the server.

For the corresponding command-line option, see—enableFreeMonitoring.

  • cloud.monitoring.free.tags
  • Type: string

New in version 4.0: Available for MongoDB Community Edition.

Optional tag to describe environment context. The tag can be sent aspart of the free MongoDB Cloud monitoring registration at start up.

For the corresponding command-line option, see—freeMonitoringTag.

net Options

Changed in version 4.2: MongoDB 4.2 deprecates ssl options in favor of tls options withidentical functionality.

  1. net:
  2. port: <int>
  3. bindIp: <string>
  4. bindIpAll: <boolean>
  5. maxIncomingConnections: <int>
  6. wireObjectCheck: <boolean>
  7. ipv6: <boolean>
  8. unixDomainSocket:
  9. enabled: <boolean>
  10. pathPrefix: <string>
  11. filePermissions: <int>
  12. tls:
  13. certificateSelector: <string>
  14. clusterCertificateSelector: <string>
  15. mode: <string>
  16. certificateKeyFile: <string>
  17. certificateKeyFilePassword: <string>
  18. clusterFile: <string>
  19. clusterPassword: <string>
  20. CAFile: <string>
  21. clusterCAFile: <string>
  22. CRLFile: <string>
  23. allowConnectionsWithoutCertificates: <boolean>
  24. allowInvalidCertificates: <boolean>
  25. allowInvalidHostnames: <boolean>
  26. disabledProtocols: <string>
  27. FIPSMode: <boolean>
  28. compression:
  29. compressors: <string>
  30. serviceExecutor: <string>
  • net.port
  • Type: integer

Default:

  • net.bindIp
  • Type: string

Default: localhost

Note

Starting in MongoDB 3.6, mongos or mongod bind to localhostby default. See Default Bind to Localhost.

The hostnames and/or IP addresses and/or full Unix domain socketpaths on which mongos or mongod should listen for client connections. Youmay attach mongos or mongod to any interface. To bind to multipleaddresses, enter a list of comma-separated values.

Example

localhost,/tmp/mongod.sock

You can specify both IPv4 and IPv6 addresses, or hostnames thatresolve to an IPv4 or IPv6 address.

Example

localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513

Note

If specifying an IPv6 address or a hostname that resolves to anIPv6 address to net.bindIp, you must start mongos or mongod withnet.ipv6 : true to enable IPv6 support. Specifying an IPv6 addressto net.bindIp does not enable IPv6 support.

If specifying alink-local IPv6 address(fe80::/10), you must append thezone indexto that address (i.e. fe80::<address>%<adapter-name>).

Example

localhost,fe80::a00:27ff:fee0:1fcf%enp0s3

Tip

When possible, use a logical DNS hostname instead of an ip address,particularly when configuring replica set members or sharded clustermembers. The use of logical DNS hostnames avoids configurationchanges due to ip address changes.

Warning

Before binding to a non-localhost (e.g. publicly accessible)IP address, ensure you have secured your cluster from unauthorizedaccess. For a complete list of security recommendations, seeSecurity Checklist. At minimum, considerenabling authentication andhardening network infrastructure.

For more information about IP Binding, refer to theIP Binding documentation.

To bind to all IPv4 addresses, enter 0.0.0.0.

To bind to all IPv4 and IPv6 addresses, enter ::,0.0.0.0 orstarting in MongoDB 4.2, an asterisk "*" (enclose the asterisk inquotes to distinguish from YAML alias nodes). Alternatively, usethe net.bindIpAll setting.

Note

  • net.bindIp and net.bindIpAll are mutuallyexclusive. That is, you can specify one or the other, but notboth.
  • The command-line option —bind_ip overrides the configurationfile setting net.bindIp.
  • net.bindIpAll
  • Type: boolean

Default: false

New in version 3.6.

If true, the mongos or mongod instance binds to all IPv4addresses (i.e. 0.0.0.0). If mongos or mongod starts withnet.ipv6 : true, net.bindIpAll also binds to all IPv6 addresses(i.e. ::).

mongos or mongod only supports IPv6 if started with net.ipv6 : true. Specifyingnet.bindIpAll alone does not enable IPv6 support.

Warning

Before binding to a non-localhost (e.g. publicly accessible)IP address, ensure you have secured your cluster from unauthorizedaccess. For a complete list of security recommendations, seeSecurity Checklist. At minimum, considerenabling authentication andhardening network infrastructure.

For more information about IP Binding, refer to theIP Binding documentation.

Alternatively, set net.bindIp to ::,0.0.0.0 or,starting in MongoDB 4.2, to an asterisk "*" (enclose theasterisk in quotes to distinguish from YAML alias nodes) to bind to all IPaddresses.

Note

net.bindIp and net.bindIpAll are mutuallyexclusive. Specifying both options causes mongos or mongod to throwan error and terminate.

  • net.maxIncomingConnections
  • Type: integer

Default: 65536

The maximum number of simultaneous connections that mongos or mongod willaccept. This setting has no effect if it is higher than your operatingsystem’s configured maximum connection tracking threshold.

Do not assign too low of a value to this option, or you willencounter errors during normal application operation.

This is particularly useful for a mongos if you have a clientthat creates multiple connections and allows them to timeout ratherthan closing them.

In this case, set maxIncomingConnections to a value slightlyhigher than the maximum number of connections that the client creates, or themaximum size of the connection pool.

This setting prevents the mongos from causing connection spikes onthe individual shards. Spikes like these may disrupt theoperation and memory allocation of the sharded cluster.

  • net.wireObjectCheck
  • Type: boolean

Default: true

When true, the mongod or mongos instance validatesall requests from clients upon receipt to prevent clients from insertingmalformed or invalid BSON into a MongoDB database.

For objects with a high degree of sub-document nesting, net.wireObjectCheck canhave a small impact on performance.

  • net.ipv6
  • Type: boolean

Default: false

Set net.ipv6 to true to enable IPv6 support. mongos/mongod disables IPv6 support by default.

Setting net.ipv6 does not direct the mongos/mongod to listen on anylocal IPv6 addresses or interfaces. To configure the mongos/mongod tolisten on an IPv6 interface, you must either:

  • Configure net.bindIp with one or more IPv6 addresses orhostnames that resolve to IPv6 addresses, or
  • Set net.bindIpAll to true.

net.unixDomainSocket Options

  1. net:
  2. unixDomainSocket:
  3. enabled: <boolean>
  4. pathPrefix: <string>
  5. filePermissions: <int>
  • net.unixDomainSocket.enabled
  • Type: boolean

Default: true

Enable or disable listening on the UNIX domain socket. net.unixDomainSocket.enabled applies onlyto Unix-based systems.

When net.unixDomainSocket.enabled is true, mongos or mongod listens on the UNIX socket.

The mongos or mongod process always listens on the UNIX socket unlessone of the following is true:

New in version 2.6: mongos or mongod installed from official .deb and .rpm packageshave the bind_ip configuration set to 127.0.0.1 bydefault.

  • net.unixDomainSocket.pathPrefix
  • Type: string

Default: /tmp

The path for the UNIX socket. net.unixDomainSocket.pathPrefix applies onlyto Unix-based systems.

If this option has no value, themongos or mongod process creates a socket with /tmp as a prefix. MongoDBcreates and listens on a UNIX socket unless one of the following is true:

  • net.unixDomainSocket.filePermissions
  • Type: int

Default: 0700

Sets the permission for the UNIX domain socket file.

net.unixDomainSocket.filePermissions applies only to Unix-based systems.

net.http Options

Changed in version 3.6: MongoDB 3.6 removes the deprecated net.http options. The optionshave been deprecated since version 3.2.

net.tls Options

New in version 4.2: The tls options provide identical functionality as theprevious ssl options.

  1. net:
  2. tls:
  3. mode: <string>
  4. certificateKeyFile: <string>
  5. certificateKeyFilePassword: <string>
  6. certificateSelector: <string>
  7. clusterCertificateSelector: <string>
  8. clusterFile: <string>
  9. clusterPassword: <string>
  10. CAFile: <string>
  11. clusterCAFile: <string>
  12. CRLFile: <string>
  13. allowConnectionsWithoutCertificates: <boolean>
  14. allowInvalidCertificates: <boolean>
  15. allowInvalidHostnames: <boolean>
  16. disabledProtocols: <string>
  17. FIPSMode: <boolean>
  • net.tls.mode
  • Type: string

New in version 4.2.

Enables TLS used for all network connections. Theargument to the net.tls.mode setting can be one of the following:

ValueDescriptiondisabledThe server does not use TLS.allowTLSConnections between servers do not use TLS. For incomingconnections, the server accepts both TLS and non-TLS.preferTLSConnections between servers use TLS. For incomingconnections, the server accepts both TLS and non-TLS.requireTLSThe server uses and accepts only TLS encrypted connections.

If —tlsCAFile or tls.CAFile is notspecified and you are not using x.509 authentication, thesystem-wide CA certificate store will be used when connecting to anTLS-enabled server.

If using x.509 authentication, —tlsCAFile or tls.CAFilemust be specified unless using —tlsCertificateSelector.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.tls.certificateKeyFile
  • Type: string

New in version 4.2.

Note

Starting in 4.0, on macOS or Windows, you can use a certificate fromthe operating system’s secure store instead of specifying a PEM file. Seenet.tls.certificateSelector.

The .pem file that contains both the TLS certificateand key.

  • net.tls.certificateKeyFilePassword
  • Type: string

New in version 4.2.

The password to de-crypt the certificate-key file (i.e.certificateKeyFile). Use the net.tls.certificateKeyFilePassword option only if thecertificate-key file is encrypted. In all cases, the mongos or mongod willredact the password from all logging and reporting output.

Starting in MongoDB 4.0:

  • net.tls.certificateSelector
  • Type: string

New in version 4.2: Available on Windows and macOS as an alternative to net.tls.certificateKeyFile.

The net.tls.certificateKeyFile and net.tls.certificateSelector options are mutually exclusive. You can onlyspecify one.

Specifies a certificate property in order to select a matchingcertificate from the operating system’s certificate store.

net.tls.certificateSelector accepts an argument of the format <property>=<value>where the property can be one of the following:

PropertyValue typeDescriptionsubjectASCII stringSubject name or common name on certificatethumbprinthex stringA sequence of bytes, expressed as hexadecimal, used toidentify a public key by its SHA-1 digest.

The thumbprint is sometimes referred to as afingerprint.

When using the system SSL certificate store, OCSP (OnlineCertificate Status Protocol) is used to validate the revocationstatus of certificates.

  • net.tls.clusterCertificateSelector
  • Type: string

New in version 4.2: Available on Windows and macOS as an alternative tonet.tls.clusterFile.

net.tls.clusterFile and net.tls.clusterCertificateSelector options are mutually exclusive. You can onlyspecify one.

Specifies a certificate property in order to select a matchingcertificate from the operating system’s certificate store to use forinternal authentication.

net.tls.clusterCertificateSelector accepts an argument of the format <property>=<value>where the property can be one of the following:

PropertyValue typeDescriptionsubjectASCII stringSubject name or common name on certificatethumbprinthex stringA sequence of bytes, expressed as hexadecimal, used toidentify a public key by its SHA-1 digest.

The thumbprint is sometimes referred to as afingerprint.

  • net.tls.clusterFile
  • Type: string

New in version 4.2.

Note

Starting in 4.0, on macOS or Windows, you can use a certificatefrom the operating system’s secure store instead of a PEMfile. See net.tls.clusterCertificateSelector.

The .pem file that contains the x.509 certificate-keyfile for membership authenticationfor the cluster or replica set.

If net.tls.clusterFile does not specify the .pem file for internal clusterauthentication or the alternativenet.tls.clusterCertificateSelector, the cluster uses the.pem file specified in the certificateKeyFile setting orthe certificate returned by the net.tls.certificateSelector.

If using x.509 authentication, —tlsCAFile or tls.CAFilemust be specified unless using —tlsCertificateSelector.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.tls.clusterPassword
  • Type: string

New in version 4.2.

The password to de-crypt the x.509 certificate-key filespecified with —tlsClusterFile. Use the net.tls.clusterPassword option onlyif the certificate-key file is encrypted. In all cases, the mongos or mongodwill redact the password from all logging and reporting output.

Starting in MongoDB 4.0:

  • net.tls.CAFile
  • Type: string

New in version 4.2.

The .pem file that contains the root certificate chainfrom the Certificate Authority. Specify the file name of the.pem file using relative or absolute paths.

Starting in 4.0, on macOS or Windows, you can use a certificate fromthe operating system’s secure store instead of a PEM key file. Seenet.tls.certificateSelector. When using the secure store, youdo not need to, but can, also specify the net.tls.CAFile.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.tls.clusterCAFile
  • Type: string

New in version 4.2.

The .pem file that contains the root certificate chainfrom the Certificate Authority used to validate the certificatepresented by a client establishing a connection. Specify the filename of the .pem file using relative or absolute paths.

If net.tls.clusterCAFile does not specify the .pem file for validating thecertificate from a client establishing a connection, the cluster usesthe .pem file specified in the net.tls.CAFile option.

net.tls.clusterCAFile lets you use separate Certificate Authorities to verify theclient to server and server to client portions of the TLS handshake.

Starting in 4.0, on macOS or Windows, you can use a certificate fromthe operating system’s secure store instead of a PEM key file. Seenet.tls.clusterCertificateSelector. When using the secure store, youdo not need to, but can, also specify the net.tls.clusterCAFile.

Requires that net.tls.CAFile is set.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.tls.CRLFile
  • Type: string

New in version 4.2.

The the .pem file that contains the Certificate RevocationList. Specify the file name of the .pem file using relative orabsolute paths.

Note

Starting in MongoDB 4.0, you cannot specify net.tls.CRLFile on macOS. Use net.tls.certificateSelector instead.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.tls.allowConnectionsWithoutCertificates
  • Type: boolean

New in version 4.2.

For clients that do not present certificates, mongos or mongod bypassesTLS/SSL certificate validation when establishing the connection.

For clients that present a certificate, however, mongos or mongod performscertificate validation using the root certificate chain specified byCAFile and reject clients with invalid certificates.

Use the net.tls.allowConnectionsWithoutCertificates option if you have a mixed deployment that includesclients that do not or cannot present certificates to the mongos or mongod.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.tls.allowInvalidCertificates
  • Type: boolean

New in version 4.2.

Enable or disable the validation checks for TLS certificates on otherservers in the cluster and allows the use of invalid certificates toconnect.

Note

If you specify—tlsAllowInvalidCertificates or tls.allowInvalidCertificates:true when using x.509 authentication, an invalid certificate isonly sufficient to establish a TLS connection but isinsufficient for authentication.

When usingthe net.tls.allowInvalidCertificates setting, MongoDBlogs a warning regarding the use of the invalid certificate.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.tls.allowInvalidHostnames
  • Type: boolean

Default: false

New in version 3.0.

When net.tls.allowInvalidHostnames is true, MongoDB disables the validation of thehostnames in TLS certificates, allowing mongod to connect toMongoDB instances if the hostname their certificates do not match thespecified hostname.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.tls.disabledProtocols
  • Type: string

New in version 4.2.

Prevents a MongoDB server running with TLS from acceptingincoming connections that use a specific protocol or protocols. Tospecify multiple protocols, use a comma separated list of protocols.

net.tls.disabledProtocols recognizes the following protocols: TLS1_0, TLS1_1,TLS1_2, and starting in version 4.0.4 (and 3.6.9), TLS1_3.

  • On macOS, you cannot disable TLS1_1 and leave both TLS1_0 andTLS1_2 enabled. You must disable at least one of the othertwo, for example, TLS1_0,TLS1_1.
  • To list multiple protocols, specify as a comma separated list ofprotocols. For example TLS1_0,TLS1_1.
  • Specifying an unrecognized protocol will prevent the server fromstarting.
  • The specified disabled protocols overrides any default disabledprotocols.Starting in version 4.0, MongoDB disables the use of TLS 1.0 if TLS1.1+ is available on the system. To enable the disabled TLS 1.0,specify none to net.tls.disabledProtocols. See Disable TLS 1.0.

Members of replica sets and sharded clusters must speak at least oneprotocol in common.

See also

Disallow Protocols

  • net.tls.FIPSMode
  • Type: boolean

New in version 4.2.

Enable or disable the use of the FIPS mode of the TLSlibrary for the mongos or mongod. Your system must have a FIPScompliant library to use the net.tls.FIPSMode option.

Note

FIPS-compatible TLS/SSL isavailable only in MongoDB Enterprise. SeeConfigure MongoDB for FIPS for more information.

net.ssl Options

Important

All SSL options are deprecated since 4.2. Use the TLS counterparts instead, as they have identical functionality to theSSL options. The SSL protocol is deprecated and MongoDB supports TLS 1.0and later.

  1. net:
  2. ssl: # deprecated since 4.2
  3. sslOnNormalPorts: <boolean> # deprecated since 2.6
  4. mode: <string>
  5. PEMKeyFile: <string>
  6. PEMKeyPassword: <string>
  7. certificateSelector: <string>
  8. clusterCertificateSelector: <string>
  9. clusterFile: <string>
  10. clusterPassword: <string>
  11. CAFile: <string>
  12. clusterCAFile: <string>
  13. CRLFile: <string>
  14. allowConnectionsWithoutCertificates: <boolean>
  15. allowInvalidCertificates: <boolean>
  16. allowInvalidHostnames: <boolean>
  17. disabledProtocols: <string>
  18. FIPSMode: <boolean>
  • net.ssl.sslOnNormalPorts
  • Type: boolean

Deprecated since version 2.6: Use net.tls.mode: requireTLS instead.

Enable or disable TLS/SSL for mongos or mongod.

With net.ssl.sslOnNormalPorts, a mongos or mongod requires TLS/SSL encryption for allconnections on the default MongoDB port, or the port specified bynet.port. By default, net.ssl.sslOnNormalPorts isdisabled.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.mode
  • Type: string

Deprecated since version 4.2: Use net.tls.mode instead.

New in version 2.6.

Enables TLS/SSL or mixed TLS/SSL used for all network connections. Theargument to the net.ssl.mode setting can be one of the following:

ValueDescriptiondisabledThe server does not use TLS/SSL.allowSSLConnections between servers do not use TLS/SSL. For incomingconnections, the server accepts both TLS/SSL and non-TLS/non-SSL.preferSSLConnections between servers use TLS/SSL. For incomingconnections, the server accepts both TLS/SSL and non-TLS/non-SSL.requireSSLThe server uses and accepts only TLS/SSL encrypted connections.

Starting in version 3.4, if —tlsCAFile/net.tls.CAFile (ortheir aliases —sslCAFile/net.ssl.CAFile) is not specifiedand you are not using x.509 authentication, the system-wide CAcertificate store will be used when connecting to an TLS/SSL-enabledserver.

To use x.509 authentication, —tlsCAFile or net.tls.CAFilemust be specified unless using —tlsCertificateSelector or—net.tls.certificateSelector. Or if using the ssl aliases,—sslCAFile or net.ssl.CAFile must be specified unless using—sslCertificateSelector or net.ssl.certificateSelector.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.PEMKeyFile
  • Type: string

Deprecated since version 4.2: Use net.tls.certificateKeyFile instead.

Note

Starting in 4.0, on macOS or Windows, you can use a certificate fromthe operating system’s secure store instead of a PEM file. Seenet.ssl.certificateSelector.

The .pem file that contains both the TLS/SSL certificateand key.

  • net.ssl.PEMKeyPassword
  • Type: string

Deprecated since version 4.2: Use net.tls.certificateKeyFilePassword instead.

The password to de-crypt the certificate-key file (i.e.PEMKeyFile). Use the net.ssl.PEMKeyPassword option only if thecertificate-key file is encrypted. In all cases, the mongos or mongod willredact the password from all logging and reporting output.

Starting in MongoDB 4.0:

  • net.ssl.certificateSelector
  • Type: string

Deprecated since version 4.2: Use net.tls.certificateSelector instead.

New in version 4.0: Available on Windows and macOS as an alternative to net.ssl.PEMKeyFile.

net.ssl.PEMKeyFile and net.ssl.certificateSelector options are mutually exclusive. You can onlyspecify one.

Specifies a certificate property in order to select a matchingcertificate from the operating system’s certificate store.

net.ssl.certificateSelector accepts an argument of the format <property>=<value>where the property can be one of the following:

PropertyValue typeDescriptionsubjectASCII stringSubject name or common name on certificatethumbprinthex stringA sequence of bytes, expressed as hexadecimal, used toidentify a public key by its SHA-1 digest.

The thumbprint is sometimes referred to as afingerprint.

When using the system SSL certificate store, OCSP (OnlineCertificate Status Protocol) is used to validate the revocationstatus of certificates.

  • net.ssl.clusterCertificateSelector
  • Type: string

Deprecated since version 4.2: Use net.tls.clusterCertificateSelector instead.

New in version 4.0: Available on Windows and macOS as an alternative tonet.ssl.clusterFile.

net.ssl.clusterFile and net.ssl.clusterCertificateSelector options are mutually exclusive. You can onlyspecify one.

Specifies a certificate property in order to select a matchingcertificate from the operating system’s certificate store to use forinternal authentication.

net.ssl.clusterCertificateSelector accepts an argument of the format <property>=<value>where the property can be one of the following:

PropertyValue typeDescriptionsubjectASCII stringSubject name or common name on certificatethumbprinthex stringA sequence of bytes, expressed as hexadecimal, used toidentify a public key by its SHA-1 digest.

The thumbprint is sometimes referred to as afingerprint.

  • net.ssl.clusterFile
  • Type: string

Deprecated since version 4.2: Use net.tls.clusterFile instead.

Note

Starting in 4.0, on macOS or Windows, you can use a certificatefrom the operating system’s secure store instead of a PEM keyfile. See net.ssl.clusterCertificateSelector.

The .pem file that contains the x.509 certificate-keyfile for membership authenticationfor the cluster or replica set.

If net.ssl.clusterFile does not specify the .pem file for internal clusterauthentication or the alternativenet.ssl.clusterCertificateSelector, the cluster uses the.pem file specified in the PEMKeyFile setting orthe certificate returned by the net.ssl.certificateSelector.

To use x.509 authentication, —tlsCAFile or net.tls.CAFilemust be specified unless using —tlsCertificateSelector or—net.tls.certificateSelector. Or if using the ssl aliases,—sslCAFile or net.ssl.CAFile must be specified unless using—sslCertificateSelector or net.ssl.certificateSelector.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.clusterPassword
  • Type: string

Deprecated since version 4.2: Use net.tls.clusterPassword instead.

New in version 2.6.

The password to de-crypt the x.509 certificate-key filespecified with —sslClusterFile. Use the net.ssl.clusterPassword option onlyif the certificate-key file is encrypted. In all cases, the mongos or mongodwill redact the password from all logging and reporting output.

Starting in MongoDB 4.0:

  • net.ssl.CAFile
  • Type: string

Deprecated since version 4.2: Use net.tls.CAFile instead.

The .pem file that contains the root certificate chainfrom the Certificate Authority. Specify the file name of the.pem file using relative or absolute paths.

Starting in 4.0, on macOS or Windows, you can use a certificate fromthe operating system’s secure store instead of a PEM key file. Seenet.ssl.certificateSelector. When using the secure store, youdo not need to, but can, also specify the net.ssl.CAFile.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.clusterCAFile
  • Type: string

Deprecated since version 4.2: Use net.tls.clusterCAFile instead.

The .pem file that contains the root certificate chainfrom the Certificate Authority used to validate the certificatepresented by a client establishing a connection. Specify the filename of the .pem file using relative or absolute paths.

If net.ssl.clusterCAFile does not specify the .pem file for validating thecertificate from a client establishing a connection, the cluster usesthe .pem file specified in the net.ssl.CAFile option.

net.ssl.clusterCAFile lets you use separate Certificate Authorities to verify theclient to server and server to client portions of the TLS handshake.

Starting in 4.0, on macOS or Windows, you can use a certificate fromthe operating system’s secure store instead of a PEM key file. Seenet.ssl.clusterCertificateSelector. When using the secure store, youdo not need to, but can, also specify the net.ssl.clusterCAFile.

Requires that net.ssl.CAFile is set.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.CRLFile
  • Type: string

Deprecated since version 4.2: Use net.tls.CRLFile instead.

The the .pem file that contains the Certificate RevocationList. Specify the file name of the .pem file using relative orabsolute paths.

Note

Starting in MongoDB 4.0, you cannot specify net.ssl.CRLFile on macOS. Use net.ssl.certificateSelector instead.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.allowConnectionsWithoutCertificates
  • Type: boolean

Deprecated since version 4.2: Use net.tls.allowConnectionsWithoutCertificates instead.

For clients that do not present certificates, mongos or mongod bypassesTLS/SSL certificate validation when establishing the connection.

For clients that present a certificate, however, mongos or mongod performscertificate validation using the root certificate chain specified byCAFile and reject clients with invalid certificates.

Use the net.ssl.allowConnectionsWithoutCertificates option if you have a mixed deployment that includesclients that do not or cannot present certificates to the mongos or mongod.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.allowInvalidCertificates
  • Type: boolean

Deprecated since version 4.2: Use net.tls.allowInvalidCertificates instead.

Enable or disable the validation checks for TLS/SSL certificates on otherservers in the cluster and allows the use of invalid certificates toconnect.

Note

Starting in MongoDB 4.0, if you specify—sslAllowInvalidCertificates ornet.ssl.allowInvalidCertificates: true (or in MongoDB 4.2, thealias —tlsAllowInvalidateCertificates ornet.tls.allowInvalidCertificates: true) when using x.509authentication, an invalid certificate is only sufficient toestablish a TLS/SSL connection but is insufficient forauthentication.

When usingthe net.ssl.allowInvalidCertificates setting, MongoDBlogs a warning regarding the use of the invalid certificate.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.allowInvalidHostnames
  • Type: boolean

Default: false

Deprecated since version 4.2.

Use net.tls.allowInvalidHostnames instead.

New in version 3.0.

When net.ssl.allowInvalidHostnames is true, MongoDB disables the validation of thehostnames in TLS/SSL certificates, allowing mongod to connect toMongoDB instances if the hostname their certificates do not match thespecified hostname.

For more information about TLS/SSL and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • net.ssl.disabledProtocols
  • Type: string

Deprecated since version 4.2: Use net.tls.disabledProtocols instead.

New in version 3.0.7.

Prevents a MongoDB server running with TLS/SSL from acceptingincoming connections that use a specific protocol or protocols. Tospecify multiple protocols, use a comma separated list of protocols.

net.ssl.disabledProtocols recognizes the following protocols: TLS1_0, TLS1_1,TLS1_2, and starting in version 4.0.4 (and 3.6.9), TLS1_3.

  • On macOS, you cannot disable TLS1_1 and leave both TLS1_0 andTLS1_2 enabled. You must disable at least one of the othertwo, for example, TLS1_0,TLS1_1.
  • To list multiple protocols, specify as a comma separated list ofprotocols. For example TLS1_0,TLS1_1.
  • Specifying an unrecognized protocol will prevent the server fromstarting.
  • The specified disabled protocols overrides any default disabledprotocols.Starting in version 4.0, MongoDB disables the use of TLS 1.0 if TLS1.1+ is available on the system. To enable the disabled TLS 1.0,specify none to net.ssl.disabledProtocols. See Disable TLS 1.0.

Members of replica sets and sharded clusters must speak at least oneprotocol in common.

See also

Disallow Protocols

  • net.ssl.FIPSMode
  • Type: boolean

Deprecated since version 4.2: Use net.tls.FIPSMode instead.

Enable or disable the use of the FIPS mode of the TLS/SSLlibrary for the mongos or mongod. Your system must have a FIPScompliant library to use the net.ssl.FIPSMode option.

Note

FIPS-compatible TLS/SSL isavailable only in MongoDB Enterprise. SeeConfigure MongoDB for FIPS for more information.

net.compression Option

  1. net:
  2. compression:
  3. compressors: <string>
  • net.compression.compressors
  • Default: snappy,zstd,zlib

New in version 3.4.

Specifies the default compressor(s) to use forcommunication between this mongod or mongos instance and:

  • other members of the deployment if the instance is part of a replica set or a sharded cluster
  • a mongo shell
  • drivers that support the OP_COMPRESSED message format.MongoDB supports the following compressors:

  • snappy

  • zlib (Available starting in MongoDB 3.6)
  • zstd (Available starting in MongoDB 4.2)In versions 3.6 and 4.0, mongod andmongos enable network compression by default withsnappy as the compressor.

Starting in version 4.2, mongod andmongos instances default to both snappy,zstd,zlibcompressors, in that order.

To disable network compression, set the value to disabled.

Important

Messages are compressed when both parties enable networkcompression. Otherwise, messages between the parties areuncompressed.

If you specify multiple compressors, then the order in which you listthe compressors matter as well as the communication initiator. Forexample, if a mongo shell specifies the following networkcompressors zlib,snappy and the mongod specifiessnappy,zlib, messages between mongo shell andmongod uses zlib.

If the parties do not share at least one common compressor, messagesbetween the parties are uncompressed. For example, if amongo shell specifies the network compressorzlib and mongod specifies snappy, messagesbetween mongo shell and mongod are not compressed.

  • net.serviceExecutor
  • Type: string

Default: synchronous

New in version 3.6.

Determines the threading and execution model mongos or mongod uses toexecute client requests. The —serviceExecutor option accepts oneof the following values:

ValueDescriptionsynchronousThe mongos or mongod uses synchronous networking and manages itsnetworking thread pool on a per connection basis. Previousversions of MongoDB managed threads in this way.adaptiveThe mongos or mongod uses the new experimental asynchronousnetworking mode with an adaptive thread pool which managesthreads on a per request basis. This mode should have moreconsistent performance and use less resources when there aremore inactive connections than database requests.

security Options

  1. security:
  2. keyFile: <string>
  3. clusterAuthMode: <string>
  4. authorization: <string>
  5. transitionToAuth: <boolean>
  6. javascriptEnabled: <boolean>
  7. redactClientLogData: <boolean>
  8. clusterIpSourceWhitelist:
  9. - <string>
  10. sasl:
  11. hostName: <string>
  12. serviceName: <string>
  13. saslauthdSocketPath: <string>
  14. enableEncryption: <boolean>
  15. encryptionCipherMode: <string>
  16. encryptionKeyFile: <string>
  17. kmip:
  18. keyIdentifier: <string>
  19. rotateMasterKey: <boolean>
  20. serverName: <string>
  21. port: <string>
  22. clientCertificateFile: <string>
  23. clientCertificatePassword: <string>
  24. clientCertificateSelector: <string>
  25. serverCAFile: <string>
  26. ldap:
  27. servers: <string>
  28. bind:
  29. method: <string>
  30. saslMechanisms: <string>
  31. queryUser: <string>
  32. queryPassword: <string>
  33. useOSDefaults: <boolean>
  34. transportSecurity: <string>
  35. timeoutMS: <int>
  36. userToDNMapping: <string>
  37. authz:
  38. queryTemplate: <string>
  • security.keyFile
  • Type: string

The path to a key file that stores the shared secretthat MongoDB instances use to authenticate to each other in asharded cluster or replica set. keyFile impliessecurity.authorization. See Internal/Membership Authentication for moreinformation.

Starting in MongoDB 4.2, keyfiles for internal membershipauthentication use YAML format to allow formultiple keys in a keyfile. The YAML format accepts content of:

  • a single key string (same as in earlier versions),
  • multiple key strings (each string must be enclosed in quotes), or
  • sequence of key strings.The YAML format is compatible with the existing single-keykeyfiles that use the text file format.
  • security.clusterAuthMode
  • Type: string

Default: keyFile

New in version 2.6.

The authentication mode used for cluster authentication. If you useinternal x.509 authentication,specify so here. This option can have one of the following values:

ValueDescriptionkeyFileUse a keyfile for authentication.Accept only keyfiles.sendKeyFileFor rolling upgrade purposes. Send a keyfile forauthentication but can accept both keyfiles and x.509certificates.sendX509For rolling upgrade purposes. Send the x.509 certificate forauthentication but can accept both keyfiles and x.509certificates.x509Recommended. Send the x.509 certificate for authentication andaccept only x.509 certificates.

If —tlsCAFile or tls.CAFile is notspecified and you are not using x.509 authentication, thesystem-wide CA certificate store will be used when connecting to anTLS-enabled server.

If using x.509 authentication, —tlsCAFile or tls.CAFilemust be specified unless using —tlsCertificateSelector.

For more information about TLS and MongoDB, seeConfigure mongod and mongos for TLS/SSL andTLS/SSL Configuration for Clients .

  • security.authorization
  • Type: string

Default: disabled

Enable or disable Role-Based Access Control (RBAC) to govern eachuser’s access to database resources and operations.

Set this option to one of the following:

ValueDescriptionenabledA user can access only the database resources and actions forwhich they have been granted privileges.disabledA user can access any database and perform any action.

See Role-Based Access Control for more information.

The security.authorization setting is available only for mongod.

  • security.transitionToAuth
  • Type: boolean

Default: false

New in version 3.4: Allows the mongod or mongos to accept and create authenticated andnon-authenticated connections to and from other mongodand mongos instances in the deployment. Used forperforming rolling transition of replica sets or sharded clustersfrom a no-auth configuration to internal authentication. Requires specifying a internalauthentication mechanism such assecurity.keyFile.

For example, if using keyfiles forinternal authentication, the mongod or mongos createsan authenticated connection with any mongod or mongosin the deployment using a matching keyfile. If the security mechanisms donot match, the mongod or mongos utilizes a non-authenticated connection instead.

A mongod or mongos running with security.transitionToAuth does not enforce user accesscontrols. Users may connect to your deployment without anyaccess control checks and perform read, write, and administrative operations.

Note

A mongod or mongos running with internal authentication and withoutsecurity.transitionToAuth requires clients to connectusing user access controls. Update clients toconnect to the mongod or mongos using the appropriate userprior to restarting mongod or mongos without security.transitionToAuth.

  • security.javascriptEnabled
  • Type: boolean

Default: true

Enables or disables the server-side JavaScript execution. When disabled, you cannot useoperations that perform server-side execution of JavaScript code,such as the $where query operator, mapReducecommand and the db.collection.mapReduce() method.

  • security.redactClientLogData
  • Type: boolean

New in version 3.4: Available in MongoDB Enterprise only.

A mongod or mongos running with security.redactClientLogData redacts any message accompanying a givenlog event before logging. This prevents the mongod or mongos from writingpotentially sensitive data stored on the database to the diagnostic log.Metadata such as error or operation codes, line numbers, and source filenames are still visible in the logs.

Use security.redactClientLogData in conjunction withEncryption at Rest andTLS/SSL (Transport Encryption) to assist compliance withregulatory requirements.

For example, a MongoDB deployment might store Personally IdentifiableInformation (PII) in one or more collections. The mongod or mongos logs eventssuch as those related to CRUD operations, sharding metadata, etc. It ispossible that the mongod or mongos may expose PII as a part of these loggingoperations. A mongod or mongos running with security.redactClientLogData removes any messageaccompanying these events before being output to the log, effectivelyremoving the PII.

Diagnostics on a mongod or mongos running with security.redactClientLogData may be more difficultdue to the lack of data related to a log event. See theprocess logging manual page for anexample of the effect of security.redactClientLogData on log output.

On a running mongod or mongos, use setParameter with theredactClientLogData parameter to configure this setting.

  • security.clusterIpSourceWhitelist
  • Type: list

New in version 3.6.

A list of IP addresses/CIDR (Classless Inter-Domain Routing) ranges against which themongod validates authentication requests from other members ofthe replica set and, if part of a sharded cluster, the mongosinstances. The mongod verifies that the originating IP iseither explicitly in the list or belongs to a CIDR range in the list. If theIP address is not present, the server does not authenticate themongod or mongos.

security.clusterIpSourceWhitelist has no effect on a mongod started withoutauthentication.

security.clusterIpSourceWhitelist requires specifying each IPv4/6 address or Classless Inter-DomainRouting (CIDR) range as a YAML list:

  1. security:
  2. clusterIpSourceWhitelist:
  3. - 192.0.2.0/24
  4. - 127.0.0.1
  5. - ::1

Important

Ensure security.clusterIpSourceWhitelist includes the IP address or CIDR ranges that include theIP address of each replica set member or mongos in thedeployment to ensure healthy communication between cluster components.

Key Management Configuration Options

  1. security:
  2. enableEncryption: <boolean>
  3. encryptionCipherMode: <string>
  4. encryptionKeyFile: <string>
  5. kmip:
  6. keyIdentifier: <string>
  7. rotateMasterKey: <boolean>
  8. serverName: <string>
  9. port: <string>
  10. clientCertificateFile: <string>
  11. clientCertificatePassword: <string>
  12. clientCertificateSelector: <string>
  13. serverCAFile: <string>
  • security.enableEncryption
  • Type: boolean

Default: false

New in version 3.2: Enables encryption for the WiredTiger storage engine. You must setto true to pass in encryption keys and configurations.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.encryptionCipherMode
  • Type: string

Default: AES256-CBC

New in version 3.2.

The cipher mode to use for encryption at rest:

ModeDescriptionAES256-CBC256-bit Advanced Encryption Standard in Cipher Block ChainingModeAES256-GCM256-bit Advanced Encryption Standard in Galois/Counter Mode

Available only on Linux.

Changed in version 4.0: MongoDB Enterprise on Windows no longer supports AES256-GCM. Thiscipher is now available only on Linux.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.encryptionKeyFile
  • Type: string

New in version 3.2.

The path to the local keyfile when managing keys via process otherthan KMIP. Only set when managing keys via process other than KMIP.If data is already encrypted using KMIP, MongoDB will throw an error.

Requires security.enableEncryption to be true.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.kmip.keyIdentifier
  • Type: string

New in version 3.2.

Unique KMIP identifier for an existing key within the KMIP server.Include to use the key associated with the identifier as the systemkey. You can only use the setting the first time you enableencryption for the mongod instance. Requiressecurity.enableEncryption to be true.

If unspecified, MongoDB will request that the KMIP server create anew key to utilize as the system key.

If the KMIP server cannot locate a key with the specified identifieror the data is already encrypted with a key, MongoDB will throw anerror.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.kmip.rotateMasterKey
  • Type: boolean

Default: false

New in version 3.2.

If true, rotate the master key and re-encrypt the internalkeystore.

Enterprise Feature

Available in MongoDB Enterprise only.

See also

KMIP Master Key Rotation

  • security.kmip.serverName
  • Type: string

New in version 3.2.

Hostname or IP address of key management solution running a KMIPserver. Requires security.enableEncryption to be true.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.kmip.port
  • Type: string

Default: 5696

New in version 3.2.

Port number the KMIP server is listening on. Requires that asecurity.kmip.serverName be provided. Requiressecurity.enableEncryption to be true.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.kmip.clientCertificateFile
  • Type: string

New in version 3.2.

String containing the path to the client certificate used forauthenticating MongoDB to the KMIP server. Requires that asecurity.kmip.serverName be provided.

Note

Starting in 4.0, on macOS or Windows, you can use a certificatefrom the operating system’s secure store instead of a PEM keyfile. See security.kmip.clientCertificateSelector.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.kmip.clientCertificatePassword
  • Type: string

New in version 3.2.

The password to decrypt the client certificate (i.e.security.kmip.clientCertificateFile), used toauthenticate MongoDB to the KMIP server. Use the option only if thecertificate is encrypted.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.kmip.clientCertificateSelector
  • Type: string

New in version 4.0: Available on Windows and macOS as an alternative tosecurity.kmip.clientCertificateFile.

security.kmip.clientCertificateFile and security.kmip.clientCertificateSelector options are mutually exclusive. You can onlyspecify one.

Specifies a certificate property in order to select a matchingcertificate from the operating system’s certificate store toauthenticate MongoDB to the KMIP server.

security.kmip.clientCertificateSelector accepts an argument of the format <property>=<value>where the property can be one of the following:

PropertyValue typeDescriptionsubjectASCII stringSubject name or common name on certificatethumbprinthex stringA sequence of bytes, expressed as hexadecimal, used toidentify a public key by its SHA-1 digest.

The thumbprint is sometimes referred to as afingerprint.

Enterprise Feature

Available in MongoDB Enterprise only.

  • security.kmip.serverCAFile
  • Type: string

New in version 3.2.

Path to CA File. Used for validating secure client connection toKMIP server.

Note

Starting in 4.0, on macOS or Windows, you can use a certificatefrom the operating system’s secure store instead of a PEM keyfile. See security.kmip.clientCertificateSelector. When using the secure store, you do notneed to, but can, also specify the security.kmip.serverCAFile.

Enterprise Feature

Available in MongoDB Enterprise only.

security.sasl Options

  1. security:
  2. sasl:
  3. hostName: <string>
  4. serviceName: <string>
  5. saslauthdSocketPath: <string>
  • security.sasl.hostName
  • Type: string

A fully qualified server domain name for the purpose of configuring SASLand Kerberos authentication. The SASL hostname overrides the hostnameonly for the configuration of SASL and Kerberos.

For mongo shell and other MongoDB tools to connect tothe new hostName, see thegssapiHostName option in the mongo shell and othertools.

  • security.sasl.serviceName
  • Type: string

Registered name of the service using SASL. This option allows you tooverride the default Kerberosservice name component of the Kerberosprincipal name, on a per-instance basis. If unspecified, the defaultvalue is mongodb.

MongoDB permits setting this option only at startup. ThesetParameter can not change this setting.

This option is available only in MongoDB Enterprise.

Important

Ensure that your driver supports alternate service names.For mongo shell and other MongoDB tools to connect to thenew serviceName, see thegssapiServiceName option.

  • security.sasl.saslauthdSocketPath
  • Type: string

The path to the UNIX domain socket file for saslauthd.

security.ldap Options

  1. security:
  2. ldap:
  3. servers: <string>
  4. bind:
  5. method: <string>
  6. saslMechanisms: <string>
  7. queryUser: <string>
  8. queryPassword: <string>
  9. useOSDefaults: <boolean>
  10. transportSecurity: <string>
  11. timeoutMS: <int>
  12. userToDNMapping: <string>
  13. authz:
  14. queryTemplate: <string>
  • security.ldap.servers
  • Type: string

New in version 3.4: Available in MongoDB Enterprise only.

The LDAP server against which the mongod or mongos authenticates users ordetermines what actions a user is authorized to perform on a givendatabase. If the LDAP server specified has any replicated instances,you may specify the host and port of each replicated server in acomma-delimited list.

If your LDAP infrastructure partitions the LDAP directory over multiple LDAPservers, specify one LDAP server or any of its replicated instances tosecurity.ldap.servers. MongoDB supports following LDAP referrals as defined in RFC 45114.1.10. Do not use security.ldap.serversfor listing every LDAP server in your infrastructure.

This setting can be configured on a running mongod or mongos usingsetParameter.

If unset, mongod or mongos cannot use LDAP authentication or authorization.

  • security.ldap.bind.queryUser
  • Type: string

New in version 3.4: Available in MongoDB Enterprise only.

The identity with which mongod or mongos binds as, when connecting to orperforming queries on an LDAP server.

Only required if any of the following are true:

If unset, mongod or mongos will not attempt to bind to the LDAP server.

This setting can be configured on a running mongod or mongos usingsetParameter.

Note

Windows MongoDB deployments can use bindWithOSDefaultsinstead of queryUser and queryPassword. You cannot specifyboth queryUser and bindWithOSDefaults at the same time.

  • security.ldap.bind.queryPassword
  • Type: string

New in version 3.4: Available in MongoDB Enterprise only.

The password used to bind to an LDAP server when usingqueryUser. You must use queryPassword withqueryUser.

If unset, mongod or mongos will not attempt to bind to the LDAP server.

This setting can be configured on a running mongod or mongos usingsetParameter.

Note

Windows MongoDB deployments can use bindWithOSDefaultsinstead of queryPassword and queryPassword. You cannot specifyboth queryPassword and bindWithOSDefaults at the same time.

  • security.ldap.bind.useOSDefaults
  • Type: boolean

Default: false

New in version 3.4: Available in MongoDB Enterprise for the Windows platform only.

Allows mongod or mongos to authenticate, or bind, using your Windows logincredentials when connecting to the LDAP server.

Only required if:

  • security.ldap.bind.method
  • Type: string

Default: simple

New in version 3.4: Available in MongoDB Enterprise only.

The method mongod or mongos uses to authenticate to an LDAP server.Use with queryUser and queryPassword toconnect to the LDAP server.

method supports the following values:

  • security.ldap.bind.saslMechanisms
  • Type: string

Default: DIGEST-MD5

New in version 3.4: Available in MongoDB Enterprise only.

A comma-separated list of SASL mechanisms mongod or mongos canuse when authenticating to the LDAP server. The mongod or mongos and theLDAP server must agree on at least one mechanism. The mongod or mongosdynamically loads any SASL mechanism libraries installed on the hostmachine at runtime.

Install and configure the appropriate libraries for the selectedSASL mechanism(s) on both the mongod or mongos host and the remoteLDAP server host. Your operating system may include certain SASLlibraries by default. Defer to the documentation associated with eachSASL mechanism for guidance on installation and configuration.

If using the GSSAPI SASL mechanism for use withKerberos Authentication, verify the following for themongod or mongos host machine:

  • Linux
    • The KRB5_CLIENT_KTNAME environmentvariable resolves to the name of the client Linux Keytab Filesfor the host machine. For more on Kerberos environmentvariables, please defer to theKerberos documentation.
    • The client keytab includes aUser Principal for the mongod or mongos to use whenconnecting to the LDAP server and execute LDAP queries.
  • Windows
  • If connecting to an Active Directory server, the WindowsKerberos configuration automatically generates aTicket-Granting-Ticket.aspx)when the user logs onto the system. Set useOSDefaults totrue to allow mongod or mongos to use the generated credentials whenconnecting to the Active Directory server and execute queries.Set method to sasl to use this option.

Note

For a complete list of SASL mechanisms see theIANA listing.Defer to the documentation for your LDAP or Active Directoryservice for identifying the SASL mechanisms compatible with theservice.

MongoDB is not a source of SASL mechanism libraries, noris the MongoDB documentation a definitive source forinstalling or configuring any given SASL mechanism. Fordocumentation and support, defer to the SASL mechanismlibrary vendor or owner.

For more information on SASL, defer to the following resources:

  • security.ldap.transportSecurity
  • Type: string

Default: tls

New in version 3.4: Available in MongoDB Enterprise only.

By default, mongod or mongos creates a TLS/SSL secured connection to the LDAPserver.

For Linux deployments, you must configure the appropriate TLS Options in/etc/openldap/ldap.conf file. Your operating system’s package managercreates this file as part of the MongoDB Enterprise installation, via thelibldap dependency. See the documentation for TLS Options in theldap.conf OpenLDAP documentationfor more complete instructions.

For Windows deployment, you must add the LDAP server CA certificates to theWindows certificate management tool. The exact name and functionality of thetool may vary depending on operating system version. Please see thedocumentation for your version of Windows for more information oncertificate management.

Set transportSecurity to none to disable TLS/SSL between mongod or mongos and the LDAPserver.

Warning

Setting transportSecurity to none transmits plaintext information and possiblycredentials between mongod or mongos and the LDAP server.

  • security.ldap.timeoutMS
  • Type: int

Default: 10000

New in version 3.4: Available in MongoDB Enterprise only.

The amount of time in milliseconds mongod or mongos should wait for an LDAP serverto respond to a request.

Increasing the value of timeoutMS may prevent connection failure between theMongoDB server and the LDAP server, if the source of the failure is aconnection timeout. Decreasing the value of timeoutMS reduces the timeMongoDB waits for a response from the LDAP server.

This setting can be configured on a running mongod or mongos usingsetParameter.

  • security.ldap.userToDNMapping
  • Type: string

New in version 3.4: Available in MongoDB Enterprise only.

Maps the username provided to mongod or mongos for authentication to a LDAPDistinguished Name (DN). You may need to use userToDNMapping to transform ausername into an LDAP DN in the following scenarios:

  • Performing LDAP authentication with simple LDAP binding, where usersauthenticate to MongoDB with usernames that are not full LDAP DNs.
  • Using an LDAP authorization query template that requires a DN.
  • Transforming the usernames of clients authenticating to Mongo DB usingdifferent authentication mechanisms (e.g. x.509, kerberos) to a full LDAPDN for authorization.userToDNMapping expects a quote-enclosed JSON-string representing an ordered arrayof documents. Each document contains a regular expression match andeither a substitution or ldapQuery template used for transforming theincoming username.

Each document in the array has the following form:

  1. {
  2. match: "<regex>"
  3. substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>"
  4. }

FieldDescriptionExamplematchAn ECMAScript-formatted regular expression (regex) to match against aprovided username. Each parenthesis-enclosed section represents aregex capture group used by substitution or ldapQuery."(.+)ENGINEERING""(.+)DBA"substitutionAn LDAP distinguished name (DN) formatting template that converts theauthentication name matched by the match regex into a LDAP DN.Each curly bracket-enclosed numeric value is replaced by thecorresponding regex capture group extractedfrom the authentication username via the match regex.

The result of the substitution must be an RFC4514 escaped string."cn={0},ou=engineering,dc=example,dc=com"ldapQueryA LDAP query formatting template that inserts the authenticationname matched by the match regex into an LDAP query URI encodedrespecting RFC4515 and RFC4516. Each curly bracket-enclosed numericvalue is replaced by the corresponding regex capture group extractedfrom the authentication username via the match expression.mongod or mongos executes the query against the LDAP server to retrievethe LDAP DN for the authenticated user. mongod or mongos requiresexactly one returned result for the transformation to besuccessful, or mongod or mongos skips this transformation."ou=engineering,dc=example,dc=com??one?(user={0})"

Note

An explanation of RFC4514,RFC4515,RFC4516, or LDAP queries is outof scope for the MongoDB Documentation. Please review the RFC directly oruse your preferred LDAP resource.

For each document in the array, you must use either substitution orldapQuery. You cannot specify both in the same document.

When performing authentication or authorization, mongod or mongos steps througheach document in the array in the given order, checking the authenticationusername against the match filter. If a match is found,mongod or mongos applies the transformation and uses the output forauthenticating the user. mongod or mongos does not check the remaining documentsin the array.

If the given document does not match the provided authentication name, orthe transformation described by the document fails, mongod or mongos continuesthrough the list of documents to find additional matches. If no matches arefound in any document, mongod or mongos returns an error.

Example

The following shows two transformation documents. The firstdocument matches against any string ending in @ENGINEERING, placinganything preceeding the suffix into a regex capture group. Thesecond document matches against any string ending in @DBA, placinganything preceeding the suffix into a regex capture group.

Important

You must pass the array to userToDNMapping as a string.

  1. "[
  2. {
  3. match: "(.+)@ENGINEERING.EXAMPLE.COM",
  4. substitution: "cn={0},ou=engineering,dc=example,dc=com"
  5. },
  6. {
  7. match: "(.+)@DBA.EXAMPLE.COM",
  8. ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})"
  9.  
  10. }
  11.  
  12. ]"

A user with username alice@ENGINEERING.EXAMPLE.COM matches the firstdocument. The regex capture group {0} corresponds to the stringalice. The resulting output is the DN"cn=alice,ou=engineering,dc=example,dc=com".

A user with username bob@DBA.EXAMPLE.COM matches the second document.The regex capture group {0} corresponds to the string bob. Theresulting output is the LDAP query"ou=dba,dc=example,dc=com??one?(user=bob)". mongod or mongos executes thisquery against the LDAP server, returning the result"cn=bob,ou=dba,dc=example,dc=com".

If userToDNMapping is unset, mongod or mongos applies no transformations to the usernamewhen attempting to authenticate or authorize a user against the LDAP server.

This setting can be configured on a running mongod or mongos using thesetParameter database command.

  • security.ldap.authz.queryTemplate
  • Type: string

New in version 3.4: Available in MongoDB Enterprise only.

A relative LDAP query URL formatted conforming to RFC4515 and RFC4516 that mongod executes to obtainthe LDAP groups to which the authenticated user belongs to. The query isrelative to the host or hosts specified in security.ldap.servers.

In the URL, you can use the following substituion tokens:

Substitution TokenDescription{USER}Substitutes the authenticated username, or thetransformedusername if a userToDNMapping is specified.{PROVIDED_USER}Substitutes the supplied username, i.e. before eitherauthentication or LDAP transformation.

New in version 4.2.

When constructing the query URL, ensure that the order of LDAP parametersrespects RFC4516:

  1. [ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]

If your query includes an attribute, mongod assumes that the queryretrieves a the DNs which this entity is member of.

If your query does not include an attribute, mongod assumesthe query retrieves all entities which the user is member of.

For each LDAP DN returned by the query, mongod assigns the authorizeduser a corresponding role on the admin database. If a role on the on theadmin database exactly matches the DN, mongod grants the user theroles and privileges assigned to that role. See thedb.createRole() method for more information on creating roles.

Example

This LDAP query returns any groups listed in the LDAP user object’smemberOf attribute.

  1. "{USER}?memberOf?base"

Your LDAP configuration may not include the memberOf attribute as partof the user schema, may possess a different attribute for reporting groupmembership, or may not track group membership through attributes.Configure your query with respect to your own unique LDAP configuration.

If unset, mongod cannot authorize users using LDAP.

This setting can be configured on a running mongod using thesetParameter database command.

Note

An explanation of RFC4515,RFC4516 or LDAP queries is outof scope for the MongoDB Documentation. Please review the RFC directly oruse your preferred LDAP resource.

setParameter Option

To set parameters in the YAML configuration file, use the followingformat:

  1. setParameter:
  2. <parameter1>: <value1>
  3. <parameter2>: <value2>

For example, to specify the enableLocalhostAuthBypass inthe configuration file:

  1. setParameter:
  2. enableLocalhostAuthBypass: false

LDAP Parameters

  • setParameter.ldapUserCacheInvalidationInterval
  • Type: int

Default: 30

For use with mongod servers using LDAP Authorization.

The interval (in seconds) mongod waitsbetween external user cache flushes. After mongod flushes the externaluser cache, MongoDBreacquires authorization data from the LDAP server thenext time an LDAP-authorized user issues an operation.

Increasing the value specified increases the amount of timemongod and the LDAP server can be out of sync, but reduces the load onthe LDAP server. Conversely, decreasing the value specifieddecreases the time mongod and the LDAP server can be out of sync whileincreasing the load on the LDAP server.

  1. setParameter:
  2. ldapUserCacheInvalidationInterval: <int>

storage Options

  1. storage:
  2. dbPath: <string>
  3. indexBuildRetry: <boolean>
  4. journal:
  5. enabled: <boolean>
  6. commitIntervalMs: <num>
  7. directoryPerDB: <boolean>
  8. syncPeriodSecs: <int>
  9. engine: <string>
  10. wiredTiger:
  11. engineConfig:
  12. cacheSizeGB: <number>
  13. journalCompressor: <string>
  14. directoryForIndexes: <boolean>
  15. maxCacheOverflowFileSizeGB: <number>
  16. collectionConfig:
  17. blockCompressor: <string>
  18. indexConfig:
  19. prefixCompression: <boolean>
  20. inMemory:
  21. engineConfig:
  22. inMemorySizeGB: <number>
  • storage.dbPath
  • Type: string

Default: /data/db on Linux and macOS, \data\db on Windows

The directory where the mongod instance stores its data.

If youinstalled MongoDB using a package management system, check the/etc/mongod.conf file provided by your packages to see thedirectory is specified.

The storage.dbPath setting is available only for mongod.

The Linux package init scripts do not expect storage.dbPath to change from thedefaults. If you use the Linux packages and change storage.dbPath, you will haveto use your own init scripts and disable the built-in scripts.

  • storage.indexBuildRetry
  • Type: boolean

Default: true

Specifies whether mongod rebuilds incomplete indexes on thenext start up. This applies in cases where mongod restartsafter it has shut down or stopped in the middle of an index build. Insuch cases, mongod always removes any incomplete indexes,and then, by default, attempts to rebuild them. To stop mongodfrom rebuilding indexes, set this option to false.

Changed in version 4.0: The setting storage.indexBuildRetry cannot be used in conjunction withreplication.replSetName.

The storage.indexBuildRetry setting is available only for mongod.

Not available for mongod instances that use thein-memory storage engine.

  • storage.journal.enabled
  • Type: boolean

Default: true on 64-bit systems, false on 32-bit systems

Enable or disable the durability journal to ensure data files remain validand recoverable. This option applies only when you specify thestorage.dbPath setting. mongod enables journaling by default.

The storage.journal.enabled setting is available only for mongod.

Not available for mongod instances that use thein-memory storage engine.

Starting in MongoDB 4.0, you cannot specify —nojournal option or storage.journal.enabled:false for replica set members that use theWiredTiger storage engine.

  • storage.journal.commitIntervalMs
  • Type: number

Default: 100

The maximum amount of time in milliseconds thatthe mongod process allows betweenjournal operations. Values can range from 1 to 500 milliseconds. Lowervalues increase the durability of the journal, at the expense of diskperformance.

On WiredTiger, the default journal commit interval is 100milliseconds. Additionally, a write that includes or impliesj:true will cause an immediate sync of the journal. For detailsor additional conditions that affect the frequency of the sync, seeJournaling Process.

The storage.journal.commitIntervalMs setting is available only for mongod.

Not available for mongod instances that use thein-memory storage engine.

Note

Known Issue in 4.2.0: The storage.journal.commitIntervalMs is missing in 4.2.0.

  • storage.directoryPerDB
  • Type: boolean

Default: false

When true, MongoDB uses a separate directory to store data for each database. Thedirectories are under the storage.dbPath directory, and each subdirectoryname corresponds to the database name.

Changed in version 3.0: To change the storage.directoryPerDB option for existing deployments, you mustrestart the mongod instances with the new storage.directoryPerDBvalue and a new data directory (storage.dbPath value), and thenrepopulate the data.

  • For standalone instances, you can use mongodump onthe existing instance, stop the instance, restart with the newstorage.directoryPerDB value and a new data directory, and usemongorestore to populate the new data directory.
  • For replica sets, you can update in a rolling manner by stoppinga secondary member, restart with the new storage.directoryPerDB value anda new data directory, and use initial sync to populate the new data directory.To update all members, start with the secondary members first.Then step down the primary, and update the stepped-down member.

The storage.directoryPerDB setting is available only for mongod.

Not available for mongod instances that use thein-memory storage engine.

  • storage.syncPeriodSecs
  • Type: number

Default: 60

The amount of time that can pass before MongoDB flushes data to the datafiles via an fsync operation.

Do not set this value onproduction systems. In almost every situation, you should use thedefault setting.

Warning

If you set storage.syncPeriodSecs to 0, MongoDB will not sync thememory mapped files to disk.

The mongod process writes data very quickly to the journal andlazily to the data files. storage.syncPeriodSecs has no effect on thejournal files or journaling,but if storage.syncPeriodSecs is set to 0 the journal will eventually consumeall available disk space. If you set storage.syncPeriodSecs to 0 for testingpurposes, you should also set —nojournalto true.

The serverStatus command reports the background flushthread’s status via the backgroundFlushing field.

The storage.syncPeriodSecs setting is available only for mongod.

Not available for mongod instances that use thein-memory storage engine.

  • storage.engine
  • Default: wiredTiger

Note

Starting in version 4.2, MongoDB removes the deprecated MMAPv1 storageengine.

The storage engine for the mongod database. Availablevalues include:

ValueDescriptionwiredTigerTo specify the WiredTiger Storage Engine.inMemoryTo specify the In-Memory Storage Engine.

New in version 3.2: Available in MongoDB Enterprise only.

If you attempt to start a mongod with astorage.dbPath that contains data files produced by astorage engine other than the one specified by storage.engine, mongodwill refuse to start.

storage.wiredTiger Options

  1. storage:
  2. wiredTiger:
  3. engineConfig:
  4. cacheSizeGB: <number>
  5. journalCompressor: <string>
  6. directoryForIndexes: <boolean>
  7. maxCacheOverflowFileSizeGB: <number>
  8. collectionConfig:
  9. blockCompressor: <string>
  10. indexConfig:
  11. prefixCompression: <boolean>
  • storage.wiredTiger.engineConfig.cacheSizeGB
  • Type: float

Defines the maximum size of the internal cache that WiredTiger willuse for all data. The memory consumed by an index build (seemaxIndexBuildMemoryUsageMegabytes) is separate from theWiredTiger cache memory. Starting in MongoDB 3.4, the values can rangefrom 0.25 GB to 10000 GB and can be a float.

Starting in MongoDB 3.4, the default WiredTiger internal cache size isthe larger of either:

  • 50% of (RAM - 1 GB), or
  • 256 MB.For example, on a system with a total of 4GB of RAM the WiredTigercache will use 1.5GB of RAM (0.5 (4 GB - 1 GB) = 1.5 GB).Conversely, a system with a total of 1.25 GB of RAM will allocate 256MB to the WiredTiger cache because that is more than half of thetotal RAM minus one gigabyte (0.5 (1.25 GB - 1 GB) = 128 MB < 256 MB).

Note

In some instances, such as when running in a container, the databasecan have memory constraints that are lower than the total systemmemory. In such instances, this memory limit, rather than the totalsystem memory, is used as the maximum RAM available.

To see the memory limit, see hostInfo.system.memLimitMB.

Avoid increasing the WiredTiger internal cache size above itsdefault value.

With WiredTiger, MongoDB utilizes both the WiredTiger internal cacheand the filesystem cache.

Via the filesystem cache, MongoDB automatically uses all free memorythat is not used by the WiredTiger cache or by other processes.

Note

The storage.wiredTiger.engineConfig.cacheSizeGB limits the size of the WiredTiger internalcache. The operating system will use the available free memoryfor filesystem cache, which allows the compressed MongoDB datafiles to stay in memory. In addition, the operating system willuse any free RAM to buffer file system blocks and file systemcache.

To accommodate the additional consumers of RAM, you may have todecrease WiredTiger internal cache size.

The default WiredTiger internal cache size value assumes that there is asingle mongod instance per machine. If a single machinecontains multiple MongoDB instances, then you should decrease the setting toaccommodate the other mongodinstances.

If you run mongod in a container (e.g. lxc,cgroups, Docker, etc.) that does not have access to all of theRAM available in a system, you must set storage.wiredTiger.engineConfig.cacheSizeGB to a valueless than the amount of RAM available in the container. The exactamount depends on the other processes running in the container. SeememLimitMB.

  • storage.wiredTiger.engineConfig.journalCompressor
  • Default: snappy

New in version 3.0.0.

Specifies the type of compression to use to compress WiredTigerjournal data.

Available compressors are:

  • storage.wiredTiger.engineConfig.directoryForIndexes
  • Type: boolean

Default: false

New in version 3.0.0.

When storage.wiredTiger.engineConfig.directoryForIndexes is true, mongod stores indexes and collections in separatesubdirectories under the data (i.e. storage.dbPath) directory.Specifically, mongod stores the indexes in a subdirectory namedindex and the collection data in a subdirectory namedcollection.

By using a symbolic link, you can specify a different location forthe indexes. Specifically, when mongod instance is notrunning, move the index subdirectory to the destination andcreate a symbolic link named index under the data directory tothe new destination.

  • storage.wiredTiger.engineConfig.maxCacheOverflowFileSizeGB
  • Type: float

Specifies the maximum size (in GB) for the “lookaside (or cacheoverflow) table” file WiredTigerLAS.wt.

The setting can accept the following values:

ValueDescription0The default value. If set to 0, the file size isunbounded.number >= 0.1The maximum size (in GB). If the WiredTigerLAS.wtfile exceeds this size, mongod exits with afatal assertion. You can clear the WiredTigerLAS.wtfile and restart mongod.

To change the maximum size during runtime, use thewiredTigerMaxCacheOverflowSizeGB parameter.

Available starting in MongoDB 4.2.1 (and 4.0.12)

  • storage.wiredTiger.collectionConfig.blockCompressor
  • Default: snappy

New in version 3.0.0.

Specifies the default compression for collection data. You canoverride this on a per-collection basis when creating collections.

Available compressors are:

  • storage.wiredTiger.indexConfig.prefixCompression
  • Default: true

New in version 3.0.0.

Enables or disables prefix compression for index data.

Specify true for storage.wiredTiger.indexConfig.prefixCompression to enable prefix compression forindex data, or false to disable prefix compression for index data.

The storage.wiredTiger.indexConfig.prefixCompression setting affects all indexes created. If you changethe value of storage.wiredTiger.indexConfig.prefixCompression on an existing MongoDB deployment, all newindexes will use prefix compression. Existing indexesare not affected.

storage.inmemory Options

  1. storage:
  2. inMemory:
  3. engineConfig:
  4. inMemorySizeGB: <number>
  • storage.inMemory.engineConfig.inMemorySizeGB
  • Type: float

Default: 50% of physical RAM less 1 GB

Changed in version 3.4: Values can range from 256MB to 10TB and can be a float.

Maximum amount of memory to allocate for in-memory storageengine data, including indexes, oplog if themongod is part of replica set, replica set or shardedcluster metadata, etc.

By default, the in-memory storage engine uses 50% of physical RAM minus1 GB.

Enterprise Feature

Available in MongoDB Enterprise only.

operationProfiling Options

  1. operationProfiling:
  2. mode: <string>
  3. slowOpThresholdMs: <int>
  4. slowOpSampleRate: <double>
  • operationProfiling.mode
  • Type: string

Default: off

Specifies which operations should be profiled.The following profiler levels are available:

LevelDescriptionoffThe profiler is off and does not collect any data.This is the default profiler level.slowOpThe profiler collects data for operations that take longerthan the value of slowms.allThe profiler collects data for all operations.

Important

Profiling can impact performance and shares settings with the systemlog. Carefully consider any performance and security implicationsbefore configuring and enabling the profiler on a productiondeployment.

See Profiler Overhead for more information onpotential performance degradation.

  • operationProfiling.slowOpThresholdMs
  • Type: integer

Default: 100

The slow operation time threshold, in milliseconds. Operationsthat run for longer than this threshold are considered slow.

When logLevel is set to 0, MongoDB records _slow_operations to the diagnostic log at a rate determined byslowOpSampleRate. Starting in MongoDB4.2, the secondaries of replica sets log all oplog entry messagesthat take longer than the slow operation threshold to apply regardless of the sample rate.

At higher logLevel settings, all operations appear inthe diagnostic log regardless of their latency with the followingexception: the logging of slow oplog entry messages by thesecondaries. The secondaries log only the slow oplogentries; increasing the logLevel does not log alloplog entries.

Changed in version 4.0: The slowOpThresholdMs setting isavailable for mongod and mongos. Inearlier versions, slowOpThresholdMsis available for mongod only.

  • For mongod instances, the setting affects boththe diagnostic log and, if enabled, the profiler.
  • For mongos instances, the setting affects thediagnostic log only and not the profiler since profiling is notavailable on mongos.
  • operationProfiling.slowOpSampleRate
  • Type: double

Default: 1.0

The fraction of slow operations that should be profiled or logged.operationProfiling.slowOpSampleRate accepts values between 0 and 1, inclusive.

operationProfiling.slowOpSampleRate does not affect the slow oplog entry logging by the secondary members of a replica set. Secondarymembers log all oplog entries that take longer than the slowoperation threshold regardless of the operationProfiling.slowOpSampleRate.

Changed in version 4.0: The slowOpSampleRate setting isavailable for mongod and mongos. Inearlier versions, slowOpSampleRateis available for mongod only.

  • For mongod instances, the setting affects boththe diagnostic log and, if enabled, the profiler.
  • For mongos instances, the setting affects thediagnostic log only and not the profiler since profiling is notavailable on mongos.

replication Options

  1. replication:
  2. oplogSizeMB: <int>
  3. replSetName: <string>
  4. secondaryIndexPrefetch: <string>
  5. enableMajorityReadConcern: <boolean>
  • replication.oplogSizeMB
  • Type: integer

The maximum size in megabytes for the replication operation log(i.e., the oplog).

Note

Starting in MongoDB 4.0, the oplog can grow past its configured sizelimit to avoid deleting the majority commit point.

By default, the mongod process creates an oplog based onthe maximum amount of space available. For 64-bit systems, the oplogis typically 5% of available disk space.

Once the mongod has created the oplog for the first time,changing the replication.oplogSizeMB option will not affect the size of the oplog.

To change the oplog size of a running replica set member, use thereplSetResizeOplog administrative command.replSetResizeOplog enables you to resize the oplogdynamically without restarting the mongod process.

See Oplog Size for more information.

The replication.oplogSizeMB setting is available only for mongod.

  • replication.replSetName
  • Type: string

The name of the replica set that the mongod is part of. All hostsin the replica set must have the same set name.

If your application connects to more than one replica set, each setshould have a distinct name. Some drivers group replica setconnections by replica set name.

The replication.replSetName setting is available only for mongod.

Starting in MongoDB 4.0:

  • replication.enableMajorityReadConcern
  • Default: true

Starting in MongoDB 3.6, MongoDB enables support for"majority" read concern by default.

You can disable read concern "majority" to preventthe storage cache pressure from immobilizing a deployment with athree-member primary-secondary-arbiter (PSA) architecture. For moreinformation about disabling read concern "majority",see Disable Read Concern Majority.

To disable, set replication.enableMajorityReadConcern to false. replication.enableMajorityReadConcern has no effect forMongoDB versions: 4.0.0, 4.0.1, 4.0.2, 3.6.0.

Important

In general, avoid disabling "majority" read concernunless necessary. However, if you have a three-member replica setwith a primary-secondary-arbiter (PSA) architecture or a shardedcluster with a three-member PSA shards, disable to prevent thestorage cache pressure from immobilizing the deployment.

Disabling "majority" read concern affects support fortransactions on sharded clusters. Specifically:

  • A transaction cannot use read concern "snapshot" ifthe transaction involves a shard that has disabled readconcern “majority”.
  • A transaction that writes to multiple shards errors if any of thetransaction’s read or write operations involves a shard that hasdisabled read concern "majority".However, it does not affect transactionson replica sets. For transactions on replica sets, you can specifyread concern "majority" (or "snapshot"or "local" ) for multi-document transactions even ifread concern "majority" is disabled.

Disabling "majority" read concern disables supportfor Change Streams for MongoDB 4.0 and earlier. For MongoDB4.2+, disabling read concern "majority" has no effect on changestreams availability.

sharding Options

  1. sharding:
  2. clusterRole: <string>
  3. archiveMovedChunks: <boolean>
  • sharding.clusterRole
  • Type: string

The role that the mongod instance has in the shardedcluster. Set this setting to one of the following:

ValueDescriptionconfigsvrStart this instance as a config server. The instancestarts on port 27019 by default.shardsvrStart this instance as a shard. The instance startson port 27018 by default.

Note

Setting sharding.clusterRole requires the mongodinstance to be running with replication. To deploy the instance asa replica set member, use the replSetNamesetting and specify the name of the replica set.

The sharding.clusterRole setting is available only for mongod.

  • sharding.archiveMovedChunks
  • Type: boolean

Changed in version 3.2: Starting in 3.2, MongoDB uses false as the default.

During chunk migration, a shard does not save documents migrated fromthe shard.

auditLog Options

Note

Available only in MongoDB Enterpriseand MongoDB Atlas.

  1. auditLog:
  2. destination: <string>
  3. format: <string>
  4. path: <string>
  5. filter: <string>
  • auditLog.destination
  • Type: string

New in version 2.6.

When set, auditLog.destination enables auditing andspecifies where mongos or mongod sends all audit events.

auditLog.destination can have one of the following values:

ValueDescriptionsyslogOutput the audit events to syslog in JSON format. Not available onWindows. Audit messages have a syslog severity level of infoand a facility level of user.

The syslog message limit can result in the truncation ofaudit messages. The auditing system will neither detect thetruncation nor error upon its occurrence.consoleOutput the audit events to stdout in JSON format.fileOutput the audit events to the file specified inauditLog.path in the format specified inauditLog.format.

Note

Available only in MongoDB Enterpriseand MongoDB Atlas.

  • auditLog.format
  • Type: string

New in version 2.6.

The format of the output file for auditing if destination is file. TheauditLog.format option can have one of the following values:

ValueDescriptionJSONOutput the audit events in JSON format to the file specifiedin auditLog.path.BSONOutput the audit events in BSON binary format to the filespecified in auditLog.path.

Printing audit events to a file in JSON format degrades serverperformance more than printing to a file in BSON format.

Note

Available only in MongoDB Enterpriseand MongoDB Atlas.

  • auditLog.path
  • Type: string

New in version 2.6.

The output file for auditing ifdestination has value of file. The auditLog.pathoption can take either a full path name or a relative path name.

Note

Available only in MongoDB Enterpriseand MongoDB Atlas.

  • auditLog.filter
  • Type: string representation of a document

New in version 2.6.

The filter to limit the types of operations the audit system records. The option takes a string representationof a query document of the form:

  1. { <field1>: <expression1>, ... }

The <field> can be any field in the audit message, including fields returned in theparam document. The<expression> is a query condition expression.

To specify an audit filter, enclose the filter document in singlequotes to pass the document as a string.

To specify the audit filter in a configuration file, you must use the YAML format ofthe configuration file.

Note

Available only in MongoDB Enterpriseand MongoDB Atlas.

snmp Options

Note

MongoDB Enterprise on macOS does not include support for SNMP dueto SERVER-29352.

  1. snmp:
  2. disabled: <boolean>
  3. subagent: <boolean>
  4. master: <boolean>
  • snmp.disabled
  • Type: boolean

Default: false

Disables SNMP access to mongod. The option is incompatiblewith snmp.subagent and snmp.master.

Set to true to disable SNMP access.

The snmp.disabled setting is available only for mongod.

New in version 4.0.6.

  • snmp.subagent
  • Type: boolean

When snmp.subagent is true, SNMP runs as a subagent. The option is incompatible with snmp.disabled set to true.

The snmp.subagent setting is available only for mongod.

  • snmp.master
  • Type: boolean

When snmp.master is true, SNMP runs as a master. The option is incompatible with snmp.disabled set to true.

The snmp.master setting is available only for mongod.

See also

mongos-only Options

Changed in version 3.4: MongoDB 3.4 removes sharding.chunkSize andsharding.autoSplit settings.

  1. replication:
  2. localPingThresholdMs: <int>
  3.  
  4. sharding:
  5. configDB: <string>
  • replication.localPingThresholdMs
  • Type: integer

Default: 15

The ping time, in milliseconds, that mongos usesto determine which secondary replica set members to pass readoperations from clients. The default value of 15 corresponds tothe default value in all of the client drivers.

When mongos receives a request that permits reads tosecondary members, the mongos will:

  • Find the member of the set with the lowest ping time.

  • Construct a list of replica set members that is within a ping time of15 milliseconds of the nearest suitable member of the set.

If you specify a value for the replication.localPingThresholdMs option, mongos willconstruct the list of replica members that are within the latencyallowed by this value.

  • Select a member to read from at random from this list.

The ping time used for a member compared by the replication.localPingThresholdMs setting is amoving average of recent ping times, calculated at most every 10seconds. As a result, some queries may reach members above the thresholduntil the mongos recalculates the average.

See the Read Preference for Replica Setssection of the read preferencedocumentation for more information.

  • sharding.configDB
  • Type: string

Changed in version 3.2.

The configuration servers for thesharded cluster.

Starting in MongoDB 3.2, config servers for sharded clusters can bedeployed as a replica set. Thereplica set config servers must run the WiredTiger storage engine. MongoDB 3.2 deprecates the use of three mirroredmongod instances for config servers.

Specify the config server replica set name and the hostname and port ofat least one of the members of the config server replica set.

  1. sharding:
  2. configDB: <configReplSetName>/cfg1.example.net:27019, cfg2.example.net:27019,...

The mongos instances for the sharded cluster must specifythe same config server replica set name but can specify hostname andport of different members of the replica set.

Windows Service Options

  1. processManagement:
  2. windowsService:
  3. serviceName: <string>
  4. displayName: <string>
  5. description: <string>
  6. serviceUser: <string>
  7. servicePassword: <string>
  • processManagement.windowsService.serviceName
  • Type: string

Default: MongoDB

The service name of mongos or mongod when running as aWindows Service. Use this name with the net start <name> andnet stop <name> operations.

You must use processManagement.windowsService.serviceName in conjunction with eitherthe —install or —remove option.

  • processManagement.windowsService.displayName
  • Type: string

Default: MongoDB

The name listed for MongoDB on the Services administrativeapplication.

  • processManagement.windowsService.description
  • Type: string

Default: MongoDB Server

Run mongos or mongod service description.

You must use processManagement.windowsService.description in conjunction with the—install option.

For descriptions that contain spaces, you must enclose thedescription in quotes.

  • processManagement.windowsService.serviceUser
  • Type: string

The mongos or mongod service in the context of a certain user. Thisuser must have “Log on as a service” privileges.

You must use processManagement.windowsService.serviceUser in conjunction with the—install option.

  • processManagement.windowsService.servicePassword
  • Type: string

The password for <user> for mongos or mongod when running withthe processManagement.windowsService.serviceUser option.

You must use processManagement.windowsService.servicePassword in conjunction with the—install option.

Removed MMAPv1 Options

Starting in version 4.2, MongoDB removes the deprecated MMAPv1 storageengine and the MMAPv1-specific configuration options:

Removed Configuration File SettingRemoved Command-line Option
storage.mmapv1.journal.commitIntervalMs
storage.mmapv1.journal.debugFlagsmongod —journalOptions
storage.mmapv1.nsSizemongod —nssize
storage.mmapv1.preallocDataFilesmongod —noprealloc
storage.mmapv1.quota.enforcedmongod —quota
storage.mmapv1.quota.maxFilesPerDBmongod —quotaFiles
storage.mmapv1.smallFilesmongod —smallfiles
storage.repairPathmongod —repairpath
replication.secondaryIndexPrefetchmongod —replIndexPrefetch

For earlier versions of MongoDB, refer to the corresponding version ofthe manual. For example: