java mongodb模糊查询优化

query.addCriteria(Criteria.where("time").regex(Pattern.compile(
					"^.*" + CommUtil.toString(queryParams.get("QueryTime")) + ".*$", Pattern.CASE_INSENSITIVE)));

这个是我之前用的模糊查询;利用 Pattern来拼接查询条件。

但是后来发现当数据达到一定的量的时候。这样全局去模糊的匹配,查询速率就会特别慢。

于是我们老大提出修改

query.addCriteria(Criteria.where("time").gte(CommUtil.toString(queryParams.get("timeQuery")) + " 00:00:00"));
query.addCriteria(Criteria.where("time").lte(CommUtil.toString(queryParams.get("timeQuery")) + " 23:59:59")); 

利用gte(大于等于)和了lte(小于等于)去做限制条件就不会去模糊匹配。

这样效率就会特别快。

你可能感兴趣的:(java,web)