Skip to content
广告❤️成为赞助商

配置文件

本文讲解了MongoPlus在使用过程中的配置选项

基本配置

本部分配置包含了大部分用户的常用配置,其中一部分为 MongoDB 原生所支持的配置

使用方式

Spring Boot:

yaml
mongo-plus:
  ......
  configuration:
    ......
  data:
    ......
yml
mongo-plus:
  data:
    mongodb:
      host: 127.0.0.1
      port: 27017
      username: root
      password: root
      database: mp
      connectTimeoutMS: 50000    
      authenticationDatabase: admin
  log: true

日志配置

MongoPlus的日志配置

log

  • 类型:Boolean
  • 默认值:false

是否开启日志输出,默认false

logOrder

  • 类型:Integer
  • 默认值:0

用来指定log拦截器,在拦截器链中的order

format

  • 类型:Boolean
  • 默认值:false

是否开启格式化日志

pretty

  • 类型: Boolean
  • 默认值: false

是否将打印的命令转为MongoDB可执行的语句

日志配置示例

yml
mongo-plus:
  log: true
  format: true
  pretty: true

字段配置

camelToUnderline

  • 类型:Boolean
  • 默认值:false

是否开启驼峰转下划线

ignoringNull

  • 类型:Boolean
  • 默认值:true

是否忽略null属性

字段配置示例

yml
mongo-plus:
  configuration:
    field:
      camelToUnderline: true
      ignoringNull: false

集合配置

集合配置

mappingStrategy

  • 类型:CollectionNameConvertEnum
  • 默认值:null

collection名称映射策略 可选值:ALL_CHAR_LOWERCASE(类名全小写,默认);FIRST_CHAR_LOWERCASE(类名首字母小写);CLASS_NAME(类名);CAMEL_TO_UNDERLINE(类名按驼峰转下划线)

blockAttackInner

  • 类型:Boolean
  • 默认值:false

开启防止整个集合更新和删除(防止全表更新删除)

集合配置示例

yaml
mongo-plus:
  configuration:
    collection:
      mappingStrategy: CLASS_NAME
      block-attack-inner: true

Banner打印配置

Banner打印配置

  • 类型: Boolean
  • 默认值: true

设置为false将关闭banner打印

ikun

  • 类型: Boolean
  • 默认值: true

设置为true即开启小黑子模式

Banner打印配置示例

yaml
mongo-plus:
  configuration:
    banner: false
    ikun: true

自增id存放集合名称配置

autoIdCollectionName

  • 类型: String
  • 默认值: counters
yaml
mongo-plus:
  configuration:
    autoIdCollectionName: xxxx

自动转换ObjectId配置

autoConvertObjectId

  • 类型: boolean
  • 默认值:true
yaml
mongo-plus:
  configuration:
    autoConvertObjectId: true

自动创建索引配置

autoCreateIndex

  • 类型: boolean
  • 默认值: false
yaml
mongo-plus:
  configuration:
    autoCreateIndex: true

自动创建时序集合配置

autoCreateTimeSeries

  • 类型: boolean
  • 默认值: false
yaml
mongo-plus:
  configuration:
    autoCreateTimeSeries: true

Spring配置

对于spring的一些配置

transaction

  • 类型:boolean
  • 默认值:false

是否使用Spring的@Transactional注解控制Mongo事务

Spring配置示例

yaml
mongo-plus:
  spring:
    transaction: true

逻辑删除配置

对于逻辑删除的一些配置

open

  • 类型:boolean
  • 默认值:false

是否开启逻辑删除功能

auto-fill

  • 类型:boolean
  • 默认值:false

是否开启逻辑字段默认填充功能

logic-delete-field

  • 类型:String
  • 默认值:null

全局逻辑删除字段(对应 mongodb 文档字段,开启逻辑删除必要值)

logic-delete-value

  • 类型:String
  • 默认值:1

标志为全局逻辑删除

logic-not-delete-value

  • 类型:String
  • 默认值:0

标志为全局逻辑未删除

Spring配置示例

yaml
mongo-plus:
  configuration:
    logic:
      open: true                    # 开启逻辑删除功能
      auto-fill: true               # 开启拦截器自动填充逻辑删除字段,开启逻辑删除功能前提下生效
      logic-delete-field: logicDel  # 全局逻辑删除字段(string 类型)
      logic-delete-value: 1         # 标记逻辑删除值
      logic-not-delete-value: 0     # 标记逻辑未删除值

加解密全局配置

加解密的全局配置

privateKey

  • 类型:String
  • 默认值:null

私钥,非对称加密

publicKey

  • 类型:String
  • 默认值:null

公钥,非对称加密

key

  • 类型:String
  • 默认值:null

秘钥,对称加密

示例

yaml
mongo-plus:
  encryptor:
    privateKey: XXX
    publicKey: XXX
    key: XXX

MongoDB属性配置

MongoDB配置

url

  • 类型:String
  • 默认值:null

mongodb的url全路径,配置此路径后,下方相关的url配置将会失效,使用此url,可以用来使用SSL连接,但是database配置项还是需要的

示例

yaml
mongo-plus:
  data:
    mongodb:
      url: mongodb://test:test@127.0.0.1:27017/admin?connectTimeoutMS=50000
      database: mp

host

  • 类型:String
  • 默认值:null

mongodb地址,(副本集使用逗号(,)隔开)

port

  • 类型:String
  • 默认值:null

mongodb端口,如果是多个host,端口不同,则需要使用逗号(,)隔开,都是一样的话可以忽略

username

用户名,若账号中出现@,!等等符号,不需要再进行转码!!!

password

密码,若密码中出现@,!等等符号,不需要再进行转码!!!

authenticationDatabase

权限认证数据库,如果开启了认证,请在这里配置认证数据库

minPoolSize

指定单个连接池中随时必须存在的最小连接数 默认0

maxPoolSize

指定连接池在给定时间可以拥有的最大连接数 默认100

waitQueueTimeoutMS

指定线程等待连接可用的最长时间(以毫秒为单位),默认120秒

serverSelectionTimeoutMS

指定驱动程序在引发异常之前等待服务器选择成功的最长时间(毫秒) 默认30秒

localThresholdMS

当与副本集中的多个MongoDB实例通信时,驱动程序只会向响应时间小于或等于响应时间最快的服务器加上本地阈值(以毫秒为单位)的服务器发送请求,默认15

heartbeatFrequencyMS

指定驱动程序在尝试确定群集中每个服务器的当前状态之间等待的频率(以毫秒为单位) 默认10毫秒

replicaSet

指定提供的连接字符串包括多个主机。如果指定,驱动程序将尝试查找该集合的所有成员 默认null

ssl

指定与MongoDB实例的所有通信都应使用TLS/SSL。被tls选项取代 默认false

tls

指定与MongoDB实例的所有通信都应使用TLS。取代ssl选项 默认false

tlsInsecure

指定驱动程序应允许TLS连接的无效主机名。与将tlsAllowInvalidHostnames设置为true具有相同的效果。要以其他方式配置TLS安全约束,请使用自定义SSLContext 默认false

tlsAllowInvalidHostnames

指定驱动程序应允许TLS连接的证书中包含无效的主机名。取代允许的sslInvalidHostName 默认false

connectTimeoutMS

指定Java驱动程序在超时之前等待连接打开的最长时间(以毫秒为单位)。值0指示驱动程序在等待连接打开时永不超时 默认10毫秒

socketTimeoutMS

指定Java驱动程序在超时之前等待发送或接收请求的最长时间(以毫秒为单位)。值0指示驱动程序在等待发送或接收请求时永不超时 默认0

maxIdleTimeMS

指定Java驱动程序在关闭连接之前允许池连接空闲的最长时间(以毫秒为单位)。值0表示驱动程序允许池集合空闲的时间没有上限 默认0

maxLifeTimeMS

指定关闭连接之前,Java驱动程序将继续使用池连接的最长时间(以毫秒为单位)。值为0表示驱动程序可以保持池连接打开的时间没有上限 默认0

journal

指定驱动程序必须等待连接的MongoDB实例对磁盘上的日志文件进行组提交,以执行所有写入操作 默认false

w

指定写入问题。有关值的更多信息,请参阅官方文档 默认1

wtimeoutMS

指定写入问题的时间限制(以毫秒为单位)。有关详细信息,请参阅wtimeoutMS选项。值0指示驱动程序从不超时写入操作 默认0

readPreference

指定读取首选项。有关值的更多信息,请参阅readPreference选项 默认primary

readPreferenceTags

指定读取首选项标记。有关值的更多信息,请参阅readPreferenceTags选项 默认null

maxStalenessSeconds

  • 指定在驱动程序停止与辅助设备通信之前,辅助设备的过时程度(以秒为单位)。最小值为90秒或心跳频率加10秒,以较大者为准。
  • 有关详细信息,请参阅maxStalenessSeconds选项。不提供参数或显式指定-1表示不应对辅助设备进行过时检查 默认-1

authMechanism

指定驱动程序在提供凭据时应使用的身份验证机制 默认情况下,客户端根据服务器版本选择最安全的机制。有关可能的值,请参阅authMechanism选项

authSource

指定应验证提供的凭据的数据库 默认admin

authMechanismProperties

将指定身份验证机制的身份验证财产指定为以冒号分隔的财产和值的列表。有关详细信息,请参阅authMechanismProperties选项 默认null

appName

指定在连接握手期间提供给MongoDB实例的应用程序的名称。可用于服务器日志和分析 默认null

compressors

指定驱动程序将尝试使用的一个或多个压缩算法来压缩发送到连接的MongoDB实例的请求。可能的值包括:zlib、snappy和zstd 默认null

zlibCompressionLevel

指定Zlib的压缩程度 应该使用来减少对连接的MongoDB实例的请求大小。级别可以从-1到9,较低的值压缩得更快(但会导致较大的请求),较大的值压缩速度较慢(但会造成较小的请求) 默认null

retryWrites

指定如果由于网络错误而失败,驱动程序必须重试支持的写入操作默认true

retryReads

指定如果由于网络错误导致读取操作失败,驱动程序必须重试支持的读取操作 默认true

uuidRepresentation

指定用于读取和写入操作的UUID表示形式。有关详细信息,请参阅MongoClientSettings.getUuidRepresentation()方法 默认unspecified

directConnection

指定驱动程序必须直接连接到主机 默认false

maxConnecting

指定池可以同时建立的最大连接数 默认2

srvServiceName

指定驱动程序检索以构建种子列表的SRV资源记录的服务名称。要使用此选项,必须在连接URI中使用DNS种子列表连接格式 默认mongodb