Use a YAML configuration file to configure mongot for MongoDB Search and Vector Search deployments.
Tip
For the MongoDB Controllers for Kubernetes Operator deployments, you can use the MongoDBSearch custom resource to configure mongot. For more information, see MongoDBSearch.
The following example shows the full configuration structure with all available settings for self-managed mongot deployments with MongoDB Community:
syncSource: replicaSet: <object> hostAndPort: <string or list of strings> x509: <object> caFile: <string> tlsCertificateKeyFile: <string> tlsCertificateKeyFilePasswordFile: <string> scramAuth: <object> username: <string> passwordFile: <string> authSource: <string> tls: <object> enabled: <boolean> caFile: <string> tlsCertificateKeyFile: <string> tlsCertificateKeyFilePasswordFile: <string> router: <object> hostAndPort: <string or list of strings> x509: <object> caFile: <string> tlsCertificateKeyFile: <string> tlsCertificateKeyFilePasswordFile: <string> scramAuth: <object> username: <string> passwordFile: <string> authSource: <string> tls: <object> enabled: <boolean> caFile: <string> tlsCertificateKeyFile: <string> tlsCertificateKeyFilePasswordFile: <string> replicationReader: readPreference: <string> tagSets: <string or list of strings> storage: <object> dataPath: <string> server: <object> grpc: <object> address: <string> tls: <object> mode: <string> certificateKeyFile: <string> certificateKeyFilePasswordFile: <string> caFile: <string> name: <string> metrics: <object> enabled: <boolean> address: <string> healthCheck: <object> address: <string> logging: <object> verbosity: <string> logPath: <string> embedding: providerEndpoint: <string> queryKeyFile: <string> indexingKeyFile: <string> isAutoEmbeddingViewWriter: <boolean> advancedConfigs: <object> indexing: <object> lucene: <object> refresh: <object> intervalMs: <int> mergePolicy: <object> tiered: <object> vectorMergePolicy: <object> mergeBudgetMb: <int> mergeScheduler: <object> concurrent: <object> maxThreadCount: <int> fieldLimit: <int> querying: <object> lucene: <object> maxClauseLimit: <int> vectorFloorSegmentMB: <double> replication: <object> mongodb: <object> numConcurrentInitialSyncs: <int> numConcurrentChangeStreams: <int> numIndexingThreads: <int> numConcurrentSynonymSyncs: <int> pauseAllInitialSyncs: <boolean> pauseInitialSyncOnIndexIds: <list of strings> changeStreamMaxTimeMs: <int> changeStreamCursorMaxTimeSec: <int> numChangeStreamDecodingThreads: <int> initialSync: <object> bufferless: <object> enableNaturalOrderScan: <boolean> diskMonitor: <object> pauseReplicationThreshold: <double> resumeReplicationThreshold: <double> crashThreshold: <double> pauseInitialSyncThreshold: <double> resumeInitialSyncThreshold: <double> autoEmbedding: <object> materializedView: <object> numConcurrentChangeStreams: <int> numIndexingThreads: <int> numEmbeddingThreads: <int> numConcurrentInitialSyncs: <int> matViewWriterMaxConnections: <int> mvWriteRateLimitRps: <int> embeddingProviderRpsLimit: <int> maxInFlightEmbeddingGetMores: <int> embeddingGetMoreBatchSize: <int> changeStreamMaxTimeMs: <int> changeStreamCursorMaxTimeSec: <int> numChangeStreamDecodingThreads: <int> requestRateLimitBackoffMs: <int> globalMemoryBudgetHeapPercent: <int> perBatchMemoryBudgetHeapPercent: <int> cursor: <object> idleCursorHandlingRateMs: <int> cursorIdleTimeMs: <int> ftdc: <object> enabled: <boolean> directorySizeMb: <int> fileSizeMb: <int> collectionPeriodMillis: <int>
Required Settings
This section describes settings required for all mongot deployments. If you define only the required settings, mongot uses the defaults for all optional settings.
syncSource.replicaSet.hostAndPortType: String or List of Strings
One or more host and port specifiers used to construct the seed list in the
mongodconnection string. Regardless of the number of specifiers provided,mongotestablishes the connection in replica set mode, not standalone mode.
storage.dataPathType: String
Path that
mongotmust use as a base path for storing index data and the local index catalog.
server.grpc.addressType: String
Address on which the gRPC listen server listens. Use the following format:
<host>:<port> In self-managed deployments, this address must be reachable by the
mongodprocesses that send search and index management traffic tomongot. Configure it so it matches the host and port thatmongoduses for itsmongotHostandsearchIndexManagementHostAndPortsettings.For single-host development,
localhostis the safest default. Ifmongodandmongotrun on different hosts, setserver.grpc.addressto an interface thatmongodcan reach.Warning
Depending on your system topology, it may be necessary to bind the
mongotquery server to an interface accessible from your MongoDb Cluster. While binding to the0.0.0.0IP address is permitted, it exposes the server to all public networks and carries the risk of unauthorized access.To enhance security, consider restricting
server.grpc.addressto specific interfaces that are controlled and protected at the network layer such aslocalhostor other trusted internal addresses.
Optional Settings
This section describes optional and conditionally required settings for mongot. If you omit these settings, mongot uses the specified default value when applicable.
Replica Set Authentication Settings
syncSource.replicaSet.x509Type: Object
Necessity: Required if you do not use
syncSource.replicaSet.scramAuthX.509 certificate settings for authenticating
mongotwithmongod.
syncSource.replicaSet.x509.caFileType: String
Necessity: Required if you use
syncSource.replicaSet.x509Certificate Authority (CA) file that contains trusted certificates for verifying the certificate presented by
mongod. The file must contain an X.509 certificate collection in PEM format.
syncSource.replicaSet.x509.tlsCertificateKeyFileType: String
Necessity: Required if you use
syncSource.replicaSet.x509Path to the PEM file that contains the X.509 certificate and private key for authenticating
mongotwithmongod. Required when you configuresyncSource.replicaSet.x509.
syncSource.replicaSet.x509.tlsCertificateKeyFilePasswordFileType: String
Necessity: Optional
Path to the file that contains the password to decrypt the certificate key file specified in
syncSource.replicaSet.x509.tlsCertificateKeyFile.
syncSource.replicaSet.scramAuthType: Object
Necessity: Required if you do not use
syncSource.replicaSet.x509Settings for SCRAM authentication.
syncSource.replicaSet.scramAuth.usernameType: String
Necessity: Required
The username to authenticate with.
syncSource.replicaSet.scramAuth.passwordFileType: String
Necessity: Required
Path to a file that contains the password to authenticate with.
syncSource.replicaSet.scramAuth.authSourceType: String
Necessity: Optional
Default: admin
Name of the database associated with the
mongotauthentication credentials.
syncSource.replicaSet.scramAuth.tls.enabledType: Boolean
Necessity: Required if you specify
syncSource.replicaSet.scramAuth.tlsFlag to enable TLS authentication. Set to
trueto enable TLS authentication.
syncSource.replicaSet.scramAuth.tls.caFileType: String
Necessity: Optional
Certificate Authority (CA) file that contains trusted certificates for verifying the certificate presented by
mongod. The file must contain an X.509 certificate collection in PEM format.
Sharded Clusters Settings
syncSource.routerType: Object
Replication connections to
mongosformongot. If omitted,mongotassumes it is running in a non-sharded environment. Required for sharded cluster deployments.
syncSource.router.x509Type: Object
Necessity: Required if you do not use
syncSource.router.scramAuthX.509 certificate settings for authenticating
mongotwithmongos.
syncSource.router.x509.caFileType: String
Necessity: Required if you use
syncSource.router.x509Certificate Authority (CA) file that contains trusted certificates for verifying the certificate presented by
mongos. The file must contain an X.509 certificate collection in PEM format.
syncSource.router.x509.tlsCertificateKeyFileType: String
Necessity: Required if you use
syncSource.router.x509Path to the PEM file that contains the X.509 certificate and private key for authenticating
mongotwithmongos. Required when you configuresyncSource.router.x509.
syncSource.router.x509.tlsCertificateKeyFilePasswordFileType: String
Necessity: Optional
Path to the file that contains the password to decrypt the certificate key file specified in
syncSource.router.x509.tlsCertificateKeyFile.
syncSource.router.scramAuthType: Object
Necessity: Required if you do not use
syncSource.router.x509Settings for SCRAM authentication.
syncSource.router.scramAuth.usernameType: String
Necessity: Required
The username to authenticate with.
syncSource.router.scramAuth.passwordFileType: String
Necessity: Required
Path to a file that contains the password to authenticate with.
syncSource.router.scramAuth.authSourceType: String
Necessity: Optional
Name of the database associated with the
mongotauthentication credentials. If unspecified,authSourcedefaults toadmin.
syncSource.router.scramAuth.tls.enabledType: Boolean
Necessity: Required if you specify
syncSource.router.scramAuth.tlsFlag to enable TLS authentication. Set to
trueto enable TLS authentication.
syncSource.router.scramAuth.tls.caFileType: String
Necessity: Optional
Certificate Authority (CA) file that contains trusted certificates for verifying the certificate presented by
mongos. The file must contain an X.509 certificate collection in PEM format.
Replication Read Preference Settings
syncSource.replicationReaderType: Object
Controls the read preference that
mongotuses when reading from the replica set for replication.To filter reads by replica set member tags, specify
syncSource.replicationReader.tagSets.
syncSource.replicationReader.readPreferenceType: String
Default:
secondaryPreferredRead preference
mongotuses for replication operations. You can specify the following values:primaryprimaryPreferredsecondarysecondaryPreferrednearest
Note
Index management commands always use
primaryread preference, regardless of this setting.
syncSource.replicationReader.tagSetsType: Array
Array of tag sets that filter which replica set members receive replication reads. You cannot configure this setting if
syncSource.replicationReader.readPreferenceisprimary.Each element of
tagSetsis an array of{ name: <name>, value: <value> }objects that match replica set member tags.mongotevaluates tag sets in order and uses the first tag set that matches a member. For example:tagSets: - [ { name: hostname, value: mongod1 }, { name: region, value: us-east-1 } ]
gRPC Server Settings
The server.grpc.address setting is required. All other server.grpc settings are optional.
server.grpc.tls.modeType: String
TLS mode for the gRPC server. Must be one of the following values:
"TLS""mTLS""disabled"
Required when you configure
server.grpc.tls.
server.grpc.tls.certificateKeyFileType: String
PEM file that contains a valid X.509 certificate for
mongotusing a PKCS#8 private key.mongodvalidates this certificate using a Certificate Authority (CA) file that you specify with the--tlsCAFileoption. Required whenserver.grpc.tls.modeis"TLS"or"mTLS".
server.grpc.tls.certificateKeyFilePasswordFileType: String
Path to the file that contains the password to decrypt the certificate key file specified in
server.grpc.tls.certificateKeyFile.
server.grpc.tls.caFileType: String
Certificate Authority (CA) file that contains trusted certificates for verifying the certificate presented by
mongod. The file must contain an X.509 certificate collection in PEM format. Required whenserver.grpc.tls.modeis"mTLS".
server.nameType: String
User-provided name to identify a
mongotinstance. MongoDB usesserver.nameto identifymongothosts across programmatic interfaces such as$listSearchIndexes. If you omit this setting, MongoDB generates a name automatically.
Metrics Settings
Health Checks Settings
Logging Settings
Automated Embedding Settings
Basic Settings
Configure the following settings to enable Automated Embedding.
Note
queryKeyFileandindexingKeyFilework as a pair. If you do not configure either file,mongotlogs a warning and disables auto-embedding.providerEndpointis optional. When set,mongotapplies it as an override for the configured embedding service endpoint.isAutoEmbeddingViewWriterdefaults tofalseif you omit it.
embedding.providerEndpointType: String
URL of the embedding provider endpoint. Optional override for the default embedding provider endpoint. Use this if you want
mongotto send embedding requests to a specific provider endpoint instead of the default endpoint.
embedding.queryKeyFileType: String
Path to the file that contains the key for the query-time embedding requests. Required for Automated Embedding.
embedding.indexingKeyFileType: String
Path to the file that contains the key for the index-time embedding requests. Required for Automated Embedding.
embedding.isAutoEmbeddingViewWriterType: Boolean
Flag to designate the leader
mongotinstance responsible for writing the automated embedding View. If true, thismongotinstance acts as the writer for auto-embedding materialized-view updates.For single-instance deployments, set this to
trueto enable the instance to write the automated embeddings View.If you have multiple
mongotinstances for replica sets or sharded clusters, ensure that only one instance writes the automated embedding View to prevent duplication or conflicts. Set the value to:trueto designate amongotinstance as the leader responsible for writing the auto-embeddings View.falseto designate amongotinstance as a follower that does not write the auto-embeddings View.
Advanced Settings
advancedConfigs.autoEmbedding.materializedView.numConcurrentChangeStreamsType: Integer
Necessity: Optional
Default: 2 times the host's CPU core count
Maximum number of steady-state change streams that the materialized view replication process can have outstanding at any one time. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.numIndexingThreadsType: Integer
Necessity: Optional
Default: The host's CPU core count, with a minimum of
1Number of threads used to write embedding data into the materialized view's indexes. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.numEmbeddingThreadsType: Integer
Necessity: Optional
Default: The host's CPU core count, with a minimum of
1Number of threads used to request embeddings from the embedding provider. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.numConcurrentInitialSyncsType: Integer
Necessity: Optional
Default: Half of
advancedConfigs.replication.mongodb.numConcurrentInitialSyncs. If the result is less than1, then it uses1. If you don not setnadvancedConfigs.replication.mongodb.numConcurrentInitialSyncsn also, then it defaults to1.Maximum number of Automated Embedding indexes that can run their initial sync at the same time. Limiting concurrency reduces the load placed on the source
mongodnode and embedding provider during initial builds. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.matViewWriterMaxConnectionsType: Integer
Necessity: Optional
Default:
4Maximum number of connections used to write to the materialized view collection. Must be a positive integer no greater than
16.
advancedConfigs.autoEmbedding.materializedView.mvWriteRateLimitRpsType: Integer
Necessity: Optional
Default: No limit
Maximum number of bulk write commits per second to the materialized view collection on this node. Use this setting to limit write throughput to the source
mongodnode. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.embeddingProviderRpsLimitType: Integer
Necessity: Optional
Default: No limit
Maximum number of requests per second this node can send to the embedding provider. This is a node-level limit. Must be a positive integer no greater than
100.
advancedConfigs.autoEmbedding.materializedView.maxInFlightEmbeddingGetMoresType: Integer
Necessity: Optional
Default:
3Maximum number of embedding-provider
getMoreoperations that can be in flight concurrently for the materialized view.Lower values reduce concurrent provider and memory pressure but can reduce embedding throughput. Higher values can improve throughput but may increase resource usage. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.embeddingGetMoreBatchSizeType: Integer
Necessity: Optional
Default:
2000Number of documents returned in each embedding-provider
getMorebatch.Larger batches can improve throughput by reducing request overhead but might increase memory usage and request latency. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.changeStreamMaxTimeMsType: Integer
Necessity: Optional
Default:
700Maximum time, in milliseconds, that a materialized-view change-stream request can run before it times out.
Lower values can improve responsiveness to stalled operations but might increase request and resume frequency. Higher values can reduce request churn but might delay stall detection. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.changeStreamCursorMaxTimeSecType: Integer
Necessity: Optional
Default:
1200Maximum lifetime, in seconds, of a change-stream cursor used by materialized-view replication.
Higher values can reduce cursor recreation. Lower values can detect long-lived or stalled cursors sooner. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.numChangeStreamDecodingThreadsType: Integer
Necessity: Optional
Default:
3Number of threads used to decode change-stream events for the materialized view. Higher values can improve event-processing throughput but increase CPU usage. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.requestRateLimitBackoffMsType: Integer
Necessity: Optional
Default:
250Backoff interval, in milliseconds, that
mongotapplies after embedding requests are rate-limited.Increasing this value reduces repeated requests and provider pressure during throttling but can increase embedding update latency. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.globalMemoryBudgetHeapPercentType: Integer
Necessity: Optional
Default:
80Percentage of the
mongotheap that automated-embedding materialized-view processing can use globally.Lower values reserve more heap for other
mongotoperations but can reduce automated-embedding throughput. Higher values can increase throughput but reduce memory available to other operations. Must be a positive integer.
advancedConfigs.autoEmbedding.materializedView.perBatchMemoryBudgetHeapPercentType: Integer
Necessity: Optional
Default:
40Percentage of the
mongotheap that a single automated-embedding batch can use.This setting limits the memory impact of an individual batch. Configure it consistently with
advancedConfigs.autoEmbedding.materializedView.globalMemoryBudgetHeapPercent. Must be a positive integer.
Advanced Indexing Settings
advancedConfigs.indexing.lucene.refresh.intervalMsType: Integer
Necessity: Optional
Default:
1000Interval, in milliseconds, that
mongotwaits before refreshing an index to make recently indexed changes visible to queries. Lower values reduce the delay between writing a document and being able to query it, at the cost of more frequent refresh work. Must be a positive integer.
advancedConfigs.indexing.lucene.mergePolicy.tiered.vectorMergePolicy.mergeBudgetMbType: Integer
Necessity: Optional
Default: 10% of the host's total memory
Memory budget, in megabytes, available to background merges of vector index segments. A larger budget allows more segments to be merged together at once, which can improve query performance but uses more memory during merges. Must be a positive integer.
advancedConfigs.indexing.lucene.mergeScheduler.concurrent.maxThreadCountType: Integer
Necessity: Optional
Default: The number of CPU cores available to the host
Maximum number of threads that can perform index segment merges concurrently. Higher values allow more merges to run in parallel. Must be a positive integer.
Advanced Querying Settings
advancedConfigs.querying.lucene.maxClauseLimitType: Integer
Necessity: Optional
Default:
1024Maximum number of clauses a single query can expand to.
mongotrejects queries that expand beyond this limit. Raising this limit allows larger queries but increases their memory and CPU cost. Must be a positive integer.
advancedConfigs.querying.lucene.vectorFloorSegmentMBType: Double
Necessity: Optional
Default:
64.0Floor segment size, in megabytes, used by the merge policy for MongoDB Vector Search indexes.
mongotmerges segments smaller thanadvancedConfigs.querying.lucene.vectorFloorSegmentMBtogether more aggressively to reduce the total number of segments and improve query performance. Value must be a positive number.
Advanced Replication Settings
advancedConfigs.replication.mongodb.numConcurrentInitialSyncsType: Integer
Necessity: Optional
Default: The lesser of the host's CPU core count and
2Maximum number of indexes that can run their initial sync at the same time. Limiting concurrency reduces the load placed on the source
mongodnode while many indexes build simultaneously. Must be a positive integer.
advancedConfigs.replication.mongodb.numConcurrentChangeStreamsType: Integer
Necessity: Optional
Default: 2 times the host's CPU core count
Maximum number of steady-state change streams that can have outstanding requests to the source
mongodnode at any one time. This setting controls how many indexes can pull updates concurrently after their initial sync completes. Must be a positive integer.
advancedConfigs.replication.mongodb.numIndexingThreadsType: Integer
Necessity: Optional
Default: Half the host's CPU core count, with a minimum of
1Number of threads used to write replicated documents and changes into indexes. Higher values can improve indexing throughput but might increase CPU and memory usage. Value must be a positive integer.
advancedConfigs.replication.mongodb.numConcurrentSynonymSyncsType: Integer
Necessity: Optional
Default:
2Maximum number of synonym source collections that can sync concurrently. Must be a positive integer.
advancedConfigs.replication.mongodb.pauseAllInitialSyncsType: Boolean
Necessity: Optional
Default:
falseFlag that pauses all new initial-sync operations when set to
true. Use this setting to prevent additional index builds from increasing disk or resource usage during recovery or maintenance.This setting applies across the deployment and does not provide per-host control. To apply a change to this setting, perform a rolling restart of your
mongotinstances.
advancedConfigs.replication.mongodb.pauseInitialSyncOnIndexIdsType: Array of Strings
Necessity: Optional
Default: None
Index IDs for which
mongotpauses initial sync. Use this setting to defer selected index builds while allowing other indexes to continue synchronizing.Each value must identify a search index. This setting applies across the deployment rather than to an individual host. To apply a change to this setting, perform a rolling restart of your
mongotinstances.
advancedConfigs.replication.mongodb.changeStreamMaxTimeMsType: Integer
Necessity: Optional
Default:
500Maximum time, in milliseconds, that
mongotallows an individual change-stream request to run before it times out.Lower values can cause
mongotto retry or resume change streams more frequently. Higher values can reduce request churn but may delay detection of stalled operations. Must be a positive integer.
advancedConfigs.replication.mongodb.changeStreamCursorMaxTimeSecType: Integer
Necessity: Optional
Default:
900Maximum lifetime, in seconds, of a replication change-stream cursor.
Adjust this value only when tuning change-stream resource usage or cursor stability. Higher values can reduce cursor recreation. Lower values can detect long-lived or stalled cursors sooner. Must be a positive integer.
advancedConfigs.replication.mongodb.numChangeStreamDecodingThreadsType: Integer
Necessity: Optional
Default:
4Number of threads
mongotuses to decode replication change-stream events. Higher values can improve change-stream processing throughput but increase CPU usage. Must be a positive integer.
advancedConfigs.replication.initialSync.bufferless.enableNaturalOrderScanType: Boolean
Necessity: Optional
Default:
falseFlag that enables natural-order scans for bufferless initial sync when set to
true.Natural-order scans change how
mongotreads documents during initial sync. Evaluate the effect on initial-sync performance and source-node load before you enable this setting in production.
Advanced Disk Monitor Settings
The disk-monitor settings use a fraction of disk capacity. For example, 0.90 represents 90% disk usage. Configure the resume thresholds below their corresponding pause thresholds to prevent repeated pause and resume cycles.
Note
Changes to these settings take effect only after you restart mongot.
advancedConfigs.diskMonitor.pauseReplicationThresholdType: Double
Necessity: Optional
Default:
0.90Disk-utilization threshold at which
mongotpauses replication. Pausing replication prevents additional replicated index data from increasing disk usage while the host is under disk pressure.
advancedConfigs.diskMonitor.resumeReplicationThresholdType: Double
Necessity: Optional
Default:
0.85Disk-utilization threshold below which
mongotresumes replication after disk pressure causes replication to pause. Set this value lower thanadvancedConfigs.diskMonitor.pauseReplicationThreshold.
advancedConfigs.diskMonitor.crashThresholdType: Double
Necessity: Optional
Default:
0.95Critical disk-utilization threshold at which
mongotcrashes to protect the host from disk exhaustion. Set this threshold as a last-resort safety limit above the pause thresholds.
Advanced Cursor Settings
advancedConfigs.cursor.idleCursorHandlingRateMsType: Integer
Necessity: Optional
Default:
1800000Interval, in milliseconds, at which
mongotchecks for idle cursors. Lower values allowmongotto identify idle cursors sooner but increase cursor-management work. Must be a positive integer.
advancedConfigs.cursor.cursorIdleTimeMsType: Integer
Necessity: Optional
Default:
3600000Duration, in milliseconds, that a cursor can remain idle before
mongottreats it as idle. Lower values allowmongotto reclaim cursor resources sooner but may affect clients that intentionally wait between requests. Must be a positive integer.
Advanced FTDC Settings
advancedConfigs.ftdc.enabledType: Boolean
Necessity: Optional
Default:
trueFlag that enables full-time diagnostic data capture (FTDC). FTDC diagnostic data collection is enabled by default. When
false,mongotcreates no FTDC reporter at bootstrap, so it captures no diagnostic data.
advancedConfigs.ftdc.directorySizeMbType: Integer
Necessity: Optional
Default:
100Maximum total size, in megabytes, of the FTDC archive directory. Must be at least
10and greater thanadvancedConfigs.ftdc.fileSizeMb.