配置文件
本文讲解了
MongoPlus
在使用过程中的配置选项
基本配置
本部分配置包含了大部分用户的常用配置,其中一部分为 MongoDB 原生所支持的配置
使用方式
Spring Boot:
mongo-plus:
......
configuration:
......
data:
......
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可执行的语句
日志配置示例
mongo-plus:
log: true
format: true
pretty: true
字段配置
camelToUnderline
- 类型:
Boolean
- 默认值:
false
是否开启驼峰转下划线
ignoringNull
- 类型:
Boolean
- 默认值:
true
是否忽略null属性
字段配置示例
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
开启防止整个集合更新和删除(防止全表更新删除)
集合配置示例
mongo-plus:
configuration:
collection:
mappingStrategy: CLASS_NAME
block-attack-inner: true
Banner打印配置
Banner打印配置
banner
- 类型:
Boolean
- 默认值:
true
设置为false将关闭banner打印
ikun
- 类型:
Boolean
- 默认值:
true
设置为true即开启小黑子模式
Banner打印配置示例
mongo-plus:
configuration:
banner: false
ikun: true
自增id存放集合名称配置
autoIdCollectionName
- 类型:
String
- 默认值:
counters
mongo-plus:
configuration:
autoIdCollectionName: xxxx
自动转换ObjectId配置
autoConvertObjectId
- 类型:
boolean
- 默认值:
true
mongo-plus:
configuration:
autoConvertObjectId: true
自动创建索引配置
autoCreateIndex
- 类型:
boolean
- 默认值:
false
mongo-plus:
configuration:
autoCreateIndex: true
自动创建时序集合配置
autoCreateTimeSeries
- 类型:
boolean
- 默认值:
false
mongo-plus:
configuration:
autoCreateTimeSeries: true
Spring配置
对于spring的一些配置
transaction
- 类型:
boolean
- 默认值:
false
是否使用Spring的@Transactional注解控制Mongo事务
Spring配置示例
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配置示例
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
秘钥,对称加密
示例
mongo-plus:
encryptor:
privateKey: XXX
publicKey: XXX
key: XXX
MongoDB属性配置
MongoDB配置
url
- 类型:
String
- 默认值:
null
mongodb的url全路径,配置此路径后,下方相关的url配置将会失效,使用此url,可以用来使用SSL连接,但是database配置项还是需要的
示例
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