• Exception in monitor thread while connecting to server localhost:27017

    项目没有使用 MongoDB 却每次启动时会出现如下异常信息:10:41:41.288 [main] INFO  o.m.d.cluster - Cluster created with settings {hosts=[localhost:27017], mode=SINGLE,&nbs

    Oct 22, 2019 阅读(111)
    标签: Java
  • MongoDB 数组类型查询 —— $elemMatch 操作符

    描述$elemMatch 数组查询操作用于查询数组值中至少有一个能完全匹配所有的查询条件的文档。语法格式如下:{ <field>: { $elemMatch: { <query1>, <query2>, ... } } }如果只有一个查询条件就没必要使用

    Oct 21, 2019 阅读(105)
    标签: MongoDB
  • MongoDB 自动删除集合中过期的数据——TTL索引

    简介TTL (Time To Live, 有生命周期的) 索引是特殊单字段索引,MongoDB可以用来在一定时间后自动从集合中删除文档的特殊索引。 这对于某些类型的数据非常好,例如机器生成的事件数据,日志和会话信息,这些信息只需要在数据库中保留一段时间。 创建 TTL 索引,只需要在使用 db.collection.createIndex() 方法,对字段值为日期或者包含日期的数组设

    Sep 30, 2019 阅读(162)
    标签: MongoDB
  • MongoDB 谨防索引 seeks 的效率低下

    背景最近线上的一个工单分析服务一直不大稳定,监控平台时不时发出数据库操作超时的告警。运维兄弟沟通后,发现在每天凌晨1点都会出现若干次的业务操作失败,而数据库监控上并没有发现明显的异常。在该分析服务的日志中发现了某个数据库操作产生了 SocketTimeoutException。开发同学一开始希望通过调整 MongoDB Java Driver 的超时参数来规避这个问题。但经过详细分析之后,

    Sep 17, 2019 阅读(120)
    标签: MongoDB 性能优化
  • MongoDB ObjectId 隐藏了那些重要信息

    描述ObjectId(<hexadecimal>) 参数选填,24位16进制的数字。返回一个新的 ObjectId 值,其中12字节ObjectId 由以下部分组成:4个字节时间戳(24位中的前8位16进制的数字)。5个字节的随机数(3字节机器码+2字节进程id)。3个字节的基于随机数的计数器。ObjectId 实际上它是由一组十六进制的字符构成,每个字节两位的十六进制数字,总共用了12字

    Sep 6, 2019 阅读(127)
    标签: MongoDB Java
  • MongoDB 字符串字段拼接 $concat(aggregation)

    $concat拼接字符串操作,返回拼接后的字符串。语法格式如下:{ $concat: [ <expression1>, <expression2>, ... ] }参数可以是任何有效的表达式,只要它们解析为字符串即可。 有关表达式的更多信息,请参阅表达式。 示例准备以下测试数据:db.inven

    Sep 4, 2019 阅读(214)
    标签: MongoDB
  • Spring Boot 项目 Gradle 打 bootJar 包排除配置文件

    在 Sprint Boot 开发项目时,在使用 gradle 打可执行 jar 包时不希望把 /src/main/resources/application.yml 配置文件打到jar包里面(不同环境配置有所不同所以不希望打入包内)。build.gradle 配置改动如下:.... bootJar { // 排除配置文件 exclude("application.

    Sep 4, 2019 阅读(166)
    标签: Gradle
  • Ubuntu /etc/profile 配置的环境变量在 root 用户失效

    /etc/profile 中配置的环境变量在 sudo、root 用户下失效/etc/profile 部分环境变量配置如下:电脑上装了 mysql ,需要启动mysql 服务,普通用户启动失败错误权限不足,这就迫切需要 sudo mysqld 来启动 mysql 服务。smqk@lenovo:~$ mysqld 2019-08-16 18:00:21 0&nb

    Aug 16, 2019 阅读(158)
    标签: Ubuntu
  • Java 中调用 Javascript 脚本语言——易变业务使用脚本语言编写

    脚本语言特征灵活。 脚本语言一般都是动态类型,可以不用声明变量类型而直接使用,可以在运行期改变类型。便捷。 脚本语言是一种解释型语言,不需要编译成二进制代码,也不需要像 Java 一样生成字节码。它的执行是依靠解释器解释的。因此在运行期变更代码非常容易。而且不用停止应用。调用Javascript示例import javax.script.*; import java.io.Fi

    Jul 27, 2019 阅读(172)
    标签: Java
  • JSONArray遍历(forEach) 优雅简单的写法

    JSONArray 遍历元素实例代码,如下:import com.alibaba.fastjson.JSONArray; public class JSONArrayEachDemo {     public static void main(String[] args)&n

    Jul 13, 2019 阅读(251)
    标签: Java