### MONGODB配置文件
#### [官方地址](https://docs.mongodb.com/manual/reference/configuration-options/)

    # mongod.conf http://docs.mongodb.org/manual/reference/configuration-options/
    # mongodb的配置文件
    
    # 配置日志
    systemLog:
      verbosity: 5  #日志级别:范围是0-5,0是MongoDB的默认日志级别,5包含了debug信息
      quiet: false  #安静模式,是否输出日志
      traceAllExceptions: true  #是否打印详细的日志信息,开启
    #  syslogFacility: <string> #将日志输出到系统日志中,如果使用该功能,则systemLog.destination=syslog.
    #   path: <string>
    #   logAppend: <boolean>
    #   logRotate: <string>
    #   destination: <string>
    #   timeStampFormat: <string>
    #   component:
    #      accessControl:
    #         verbosity: <int>
    #      command:
    #         verbosity: <int>
      destination: file #mogodb日志的产生方式:file=指定的文件,syslog系统日志,如果不指定,则指向标准输出流。
      logAppend: true   #在mongodb重启时,继续往已有的日志文件中追加内容,而不是新建一个文件.
      path: /data/mongodb/mongod.log    #日志文件的输出路径,mongo将在指定的位置创建日志文件.
      logRotate: reopen   #3.0.0,两个值:rename=重命名日志文件,reopen=关闭并重新打开日志文件.如果使用reopen则要使systemLog.logAppend=true.
      timeStampFormat: iso8601-utc #日志中时间戳的格式:ctime=Wed Dec 31 18:17:54.811,iso8601-utc=1970-01-01T00:00:00.000Z,#iso8601-local=本地时间格式
    #日志组件的具体选项
      component:
       #索引操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        index:
          verbosity: 5
        #查询操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        query:
          verbosity: 5
        #复制操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        replication:
          verbosity: 5
          #心跳相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.6
          #heartbeats:
            #verbosity: 5
          #回滚相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.6
          #heartbeats:
            #verbosity: 5
         #写操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        write:
          verbosity: 5
        #访问控制相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        accessControl:
          verbosity: 5
        #命令相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        command:
          verbosity: 5
        #控制操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        control:
          verbosity: 5
        #诊断消息相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.2
        ftdc:
          verbosity: 5
        #地理空间解析相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        geo:
          verbosity: 5
        #网络操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        network:
          verbosity: 5
        #分片相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        sharding:
          verbosity: 5
        #存储相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
        storage:
          verbosity: 5
          #日志组件相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
          journal:
            verbosity: 5
    
    # 进程管理配置
    processManagement:
      fork: true  # 以守护线程模式在后台运行
      pidFilePath: /data/mongodb/mongod.pid  # 指定保存PID的文件。
      #时区文件:https://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip
      #timeZoneInfo:    #加载数据库时区的完整路径,如果不指定,则采用默认时区。
    
    # 网络配置
    net:
       port: 27017   #mongodb监听的TCP端口
       bindIp: 0.0.0.0  #允许访问的IP地址集合,不设置默认是127.0.0.1,如果需要设置多个路径可以通过[,]分割,例如:A,B,C
       #bindIpAll: true  #是否绑定所有的IP,允许访问. version:3.6
       maxIncomingConnections: 65536 #最大连接数,默认65536
       wireObjectCheck: true    #验证客户端的所有请求,防止客户端插入恶意或者无效的BSON数据,对于高度嵌套的自问当对象,性能影响很小.
       ipv6: false   #启用或禁用ipv6支持.
       #启用或者禁用在*UNIX套接字进行侦听.
       #unixDomainSocket:
          #enabled: true #启用或者禁用在*UNIX套接字进行侦听.
          #pathPrefix: <string>  #套接字的路径
          #filePermissions: <int>   #套接字文件权限
        #3.6版本删除http选项,改为了ssl.
    #   ssl:
          #sslOnNormalPorts: <boolean>  # 被2.6版本启用,改用mode: requireSSL.
          #启用TSL/SSL:
          #     disabled=不启用TLS/SSL,
          #     allowSSL=服务器之间不使用TLS/SSL,传入链接可以是TLS/SSL或者非TLS/SSl.
          #     preferSSL=服务器之间不使用TLS/SSL,传入链接可以是TLS/SSL或者非TLS/SSl.
          #     requireSSL=服务器仅使用并接受TLS/SSL加密链接.
          #mode: disabled
          #PEMKeyFile: <string> #.pem证书存放的绝对或相对路径.
          #PEMKeyPassword: <string> #用于解密PEM的密钥文件.
          #clusterFile: <string>    #集群或副本集内部身份验证的PEM文件.
          #clusterPassword: <string> #集群或副本集用于解密内部验证PEM文件的密钥.
          #CAFile: <string> #.pem包含证书颁发机构跟证书链的文件的相对或绝对路径.
          #CRLFile: <string>    #.pem包含证书吊销列表的文件的相对或绝对路径.
          #allowConnectionsWithoutCertificates: false   #弱证书验证
          #allowInvalidCertificates: <boolean>  #允许使用无效证书,关闭证书检查
          #allowInvalidHostnames: <boolean> #允许使用无效的主机名,禁用主机名校验
          #disabledProtocols: <string>  #禁用指定协议
          #FIPSMode: <boolean>  #启用或禁用使用安装OpenSSL库的的FIPS模式
       #zlib压缩器的支持,add to Version:3.4,version:3.6,默认使用snappy.
       #如果各方不共用至少一个通用压缩器,则双方之间的消息是未压缩的.
       #compression:
          #compressors: snappy
       #指定传输层通知方式,默认asio,version:3.6
       #transportLayer: asio
       #指定线程对客户端请求的执行模型:synchronous=使用同步网络并在每个链接的基础上管理其网络线程池.adaptive:使用新的实验性的异步网络模式.
       #其中当值为adaptive,要求#transportLayer的值为asio.
       #serviceExecutor: <string>
    #安全管理
    #security:
       #keyFile: <string>   #存储共享密钥的密钥文件的路径
       #用于集群身份验证的身份验证模式
       #  -  keyFile:使用密钥文件进行身份验证.
       #  - sendKeyFile: 发送密钥文件用于身份验证,可以接受密钥文件和x.509证书.
       #  - sendX509:发送x.509文件进行身份验证,可以接受密钥文件和x.509证书.
       #  - x509:推荐使用,发送x.509证书进行身份验证,且只接受x.509证书.
       #clusterAuthMode: <string>
       #启用或禁用基于角色的控制访问(RBAC)来控制每个用户对数据库资源和操作的访问。
       #  -  enabled:用户只能访问被授权的数据库资源和操作.
       #  -  disabled:用户可以访问任何资源和进行任何操作.
       #authorization: <string>
       #transitionToAuth: <boolean> #用户可以在没有任何访问控制检查的情况下访问机器,并进行读写和管理操作. version:3.4
       #javascriptEnabled:  <boolean>    #启用或禁用服务器端javascript的执行.
       #redactClientLogData: <boolean>   #记录日志的时候,将数据也记录下来. version:3.4 AND ONLY MongoDB Enterprise
       #配置SASL
       #sasl:
          #hostName: <string>   #用于配置SASL和Kerberos身份验证的完全限定服务器域名.
          #serviceName: <string>    #使用SASL的服务的注册名称.
          #saslauthdSocketPath: <string>    #UNIX域套接字文件的路径.
       #enableEncryption: <boolean> #为WiredTiger存储引擎启用机密.
       #encryptionCipherMode: <string>  #静态加密的密码模式:AES256-CBC=密码块链接模式下的256位高级加密标准,
       #AES256-GCM=Galois / Counter模式下的256位高级加密标准
       #encryptionKeyFile: <string> #通过KMIP 以外的进程管理密钥时,本地密钥文件的路径[MongoDB Enterprise]
       #
       #注意:security.kmip只能用于mongodb的企业版本,且版本需要高于3.2.
       #
       #kmip:
          #keyIdentifier: <string>   #KMIP服务器中现有秘钥的唯一KNIP标识符.version:3.2
          #rotateMasterKey: <boolean>   #旋转主秘钥并重新加密内部秘钥库.version:3.2[MongoDB Enterprise]
          #serverName: <string> #运行KMIP服务器的密钥管理解决方案的主机名或IP地址.[MongoDB Enterprise]
          #port: <string> #KMIP服务器正在监听的端口号。
          #clientCertificateFile: <string>  #包含用于向KMIP服务器验证MongoDB的客户端证书路径的字符串。
          #clientCertificatePassword: <string>  #用于解密客户端证书(即security.kmip.clientCertificateFile)的密码
          #serverCAFile: <string> #CA文件的路径。用于验证与KMIP服务器的安全客户端连接。
          #
          #注意:security.ldap只能用于mongodb的企业版本,且版本需要高于3.4.
          #
    #   ldap:
    #      servers: <string>  #通过LDAP确定执行操作的用户是否被授权,多个服务器之间可以通过[,]分割.
    #      bind:
    #         method: <string>  #该方法mongod或mongos用于向LDAP服务器进行身份验证。
    #                                - simple- mongod或mongos使用简单的身份验证。
    #                                - sasl- mongod或mongos使用SASL协议进行身份验证
    #         saslMechanisms: <string>  #以逗号分隔的SASL机制列表.
    #         queryUser: <string> #绑定LADP查询用户.
    #         queryPassword: <string> #绑定LADP服务器的密码.
    #         useOSDefaults: <boolean>  #连接到LDAP服务器时,允许mongod或mongos使用Windows登录凭据进行身份验证或绑定。
    #      transportSecurity: <string>  #默认情况下,mongod或mongos创建一个到LDAP服务器的TLS / SSL安全连接.
    #      timeoutMS: <int> #等待LDAP服务器响应请求时间(毫秒).
    #      userToDNMapping: <string>  #用于验证的用户名映射到LDAP专有名称(DN)。
    #                                  -  match=ECMAScript格式的正则表达式(正则表达式)与提供的用户名匹配。
    #                                          每个括号包围的部分表示由substitutionor 使用的正则表达式捕获组ldapQuery。
    #                                  - substitution=LDAP专有名称(DN)格式化模板。
    #                                  - ldapQuery=LDAP查询格式化模板.
    #      authz:
    #         queryTemplate: <string>   #一个相对的LDAP查询URL.
    #
    # 属性设置选项
    #
    #setParameter:
    #     ldapUserCacheInvalidationInterval: <int> #用于使用LDAP授权mongod或mongos使用LDAP授权的服务器(秒)。
    #   <parameter1>: <value1>
    #   <parameter2>: <value2>
    
    # 存储设置
    storage:
       dbPath:  /data/mongodb #mongod实例存储数据的目录,默认值:/data/db.
       indexBuildRetry: true #指定mongodb在下次启动时是否重建不完整的索引,默认:true.
    #   repairPath: <string>
    #          MongoDB在--repair操作过程中将使用的工作目录 。
    #          当--repair完成后,storage.repairPath目录是空的,并且 dbPath包含了修复的文件。
    #          该storage.repairPath设置仅适用于mongod。
    #          仅适用于mongod使用MMAPv1存储引擎的实例。
       journal:
          enabled: true #启用或禁用耐久性日志以确保数据文件保持有效并可恢复。64bit默认开启,32bit默认关闭.
    #                     不适用于mongod使用内存存储引擎的实例 。
          commitIntervalMs: 100 #mongod日志操作之间进程允许的最大时间量(毫秒),范围是1-500,默认值是100,
    #                                  该值太低会增加日志的持久性,但是会牺牲磁盘性能.
    #                                  该storage.journal.commitIntervalMs设置仅适用于mongod。
    #                                  不适用于mongod使用内存存储引擎的实例 。
    #   directoryPerDB: <boolean>    #MongoDB使用单独的目录来存储每个数据库的数据。
    #                                  目录位于storage.dbPath目录下,并且每个子目录名称都与数据库名称相对应。
    #                                  3.0版本有变更.
    #   syncPeriodSecs: <int>  #在MongoDB将数据通过sync操作刷新到数据文件之前可以传递的时间量,默认60s.
    #                              不要在生产系统上设置此值。在几乎所有情况下,您都应该使用默认设置。
    #   engine: <string>  #mongod数据库的存储引擎。
    #                         仅在MongoDB Enterprise中可用,3.0版本中的新功能,从MongoDB 3.2开始,wiredTiger是默认值。
    #                         mmapv1=指定MMAPv1存储引擎。
    #                         wiredTiger=指定WiredTiger存储引擎。
    #                         inMemory=指定内存中存储引擎。
       mmapv1:
          preallocDataFiles: true  #启用或禁用数据文件的预分配。默认情况下,MongoDB不预先分配数据文件。
          nsSize: 16 #命名空间文件的默认大小,它是以文件结尾的文件.ns。每个集合和索引都被视为一个名称空间。
    #                        使用此设置控制新创建的名称空间文件的大小。该选项对现有文件没有影响。
    #                        命名空间文件的最大大小是2047兆字节。默认值16兆字节提供了大约24,000个名称空间。
          quota:
             enforced: false  #启用或禁用强制每个数据库可能具有的数字数据文件的最大限制。
    #                                 使用该storage.mmapv1.quota.enforced选项运行时,MongoDB每个数据库最多有8个数据文件。
    #                                 通过调整storage.quota.maxFilesPerDB来调整这个限制。
             maxFilesPerDB: 8 #每个数据库的数据文件数量限制,默认是8.该设置仅适用于设置仅适用于mongod.
          smallFiles: false #如果你有大量的数据库,每个保存少量数据。MongoDB使用较小的默认文件大小。
    #                         该storage.mmapv1.smallFiles选项可减少数据文件的初始大小,并将最大大小限制为512兆字节。
    #                         storage.mmapv1.smallFiles也可以将每个日志文件的大小从1千兆字节减少到128兆字节。
    #      journal:
    #         debugFlags: <int>   #提供测试功能。不用于一般用途,并且会在系统异常关闭的情况下影响数据文件的完整性。
    #         commitIntervalMs: <num> #MongoDB 3.2弃用该 torage.mmapv1.journal.commitIntervalMs设置。
    #                                    改为使用storage.journal.commitIntervalMs。
    #   wiredTiger:
    #      engineConfig:
    #         cacheSizeGB: <number>    #WiredTiger将用于所有数据的内部缓存的最大大小,默认采用RAB-1GB的50%和256MB的最大值.
    #                                      尽可能不要超过最大值.
    #         journalCompressor: <string>  #用于压缩WiredTiger日志数据的压缩类型。none,snappy,zlib.version:3.0
    #         directoryForIndexes: true #mongod将索引存储在名为的子目录中 index,
    #                                        并将集合数据存储在名为的子目录中 collection。
    #      collectionConfig:
    #         blockCompressor: <string>  #用于压缩收集数据的默认压缩类型。none,snappy,zlib.version:3.0
          indexConfig:
             prefixCompression: true #启用或禁用索引数据的前缀压缩。
    #   inMemory:    #仅在MongoDB Enterprise中可用。
    #      engineConfig:
    #         inMemorySizeGB: <number> #为内存存储引擎数据分配的最大内存量,
    #                                      包括索引,oplog(如果 mongod是副本集,副本集或分片群集元数据的一部分)等。
    #                                       默认情况下,内存存储引擎使用50%的物理RAM减1 GB。
    #运行分析配置
    operationProfiling:
       mode: slowOp   #指定应该分析哪些操作,分析操作可能会影响性能.
    #                        - off=分析器已关闭,并且不收集任何数据。这是默认的分析器级别。
    #                        - slowOp=分析器收集比花费时间更长的操作的数据slowms。
    #                        - all=分析器收集所有操作的数据。
       slowOpThresholdMs: 100 #慢操作时间阈值,默认100.
    #   slowOpSampleRate: <double> #慢操作采样率,0-1之间,包含0,1.
    #
    #复制设置
    #
    #replication:
    #   oplogSizeMB: <int> #复制操作日志的最大大小(MB)
    #   replSetName: <string>  #mongod一部分的副本集的名称。副本集中的所有主机必须具有相同的集名称。仅适用于mongod.
    #   secondaryIndexPrefetch: <string>  #仅适用于mmapv1 存储引擎.
    #                                        在应用oplog中的操作之前,副本集的次要成员加载到内存中的索引。
    #                                       - none=辅助程序不会将索引加载到内存中。
    #                                       - all=辅助程序加载与操作相关的所有索引。
    #                                       - _id_only=Secondaries不会将额外的索引加载到已有_id索引之外的内存中。
    #   enableMajorityReadConcern: <boolean>  ## Deprecated in 3.6
    #                                            从MongoDB 3.6开始,"majority"始终启用读取关注,并且此设置不起作用。
    #    localPingThresholdMs: <int>  #mongos用于确定哪些辅助副本集成员从客户端传递读取操作的ping时间(以毫秒为单位)。
    #                                    默认值15对应于所有客户端驱动程序中的默认值。
    #
    # 分片设置
    #
    #sharding:
    #   clusterRole: <string>    #mongod实例在分片群集中扮演的角色
    #                           - configsvr=将此实例作为配置服务器启动。默认情况下,该实例在27019端口上启动。
    #                           - shardsvr=启动此实例为碎片。默认情况下,该实例在27018端口上启动。
    #                            设置sharding.clusterRole要求mongod 实例与复制一起运行。
    #                            要将实例部署为副本集成员,请使用该replSetName 设置并指定副本集的名称。
    #   archiveMovedChunks: false  #从3.2开始,MongoDB false用作默认值。在块迁移期间,分片不会保存从分片迁移的文档。
    #   configDB: <configReplSetName>/cfg1.example.net:27017, cfg2.example.net:27017,...   #该配置服务器用于 分片群集。
    #
    # 审计日志设置,仅在MongoDB Enterprise中可用。
    #
    #auditLog:
    #   destination: file  #设置后,auditLog.destination启用使用指定格式往指定目标发送所有审核事件。
    ##                             - syslog=以JSON格式输出审计事件到系统日志.
    ##                             - console=以stdoutJSON格式输出审计事件。
    ##                             - file=将审核事件输出到以中指定auditLog.path格式auditLog.format指定的文件 。
    #   format: JSON   #用于审计的输出文件的格式,当auditLog.destination=file时,可以指定该值(JSON/BSON).
    #   path: <string> #输出文件的绝对或相对路径,当auditLog.destination=file时,可以指定该值.
    #   filter: <string> #过滤指定类型的操作的记录。
    #
    # 简单网络管理协议配置
    #
    #snmp:
    #   subagent: <boolean>  #该snmp.subagent设置仅适用于mongod。
    #                        如果snmp.subagent是true,SNMP运行的子代理。
    #   master: <boolean>    #当snmp.master是true,SNMP运行作为一个主站。·
    #
    # 文本搜索选项 ,仅在MongoDB Enterprise中可用。
    #
    #basisTech:
    #   rootDirectory:<string> #指定Basis Technology Rosette语言学平台安装根目录的路径,以支持用于文本搜索操作的其他语言。