Use a YAML configuration file to configure mongot for MongoDB Search and Vector Search deployments. The following example shows the full configuration structure with all available settings:
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> autoEmbedding: <object> materializedView: <object> numConcurrentChangeStreams: <int> numIndexingThreads: <int> numEmbeddingThreads: <int> numConcurrentInitialSyncs: <int> matViewWriterMaxConnections: <int> mvWriteRateLimitRps: <int> embeddingProviderRpsLimit: <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.
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.
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.