mongodb在java中进行模糊查询以及时间段查询总结
来源:互联网 发布:理正软件 编辑:程序博客网 时间:2024/06/05 05:00
最近在java项目中写mongodb的案例,碰到了一些棘手的问题,
下面来总结一下(模糊查询,普通查询,时间段查询,还有一些特殊的查询方式)
贴一小段拼凑查询条件的代码 private BasicDBObject param; // 汇总查询条件
/*模糊查询
* 完全模糊
*pattern=Pattern.compile("^.*"+prodId.trim()+".*$",Pattern.CASE_INSENSITIVE);
* 匹配以...开头(左匹配)
pattern=Pattern.compile("^"+parodId.trim()+".*$",Pattern.CASE_INSENSITIVE);
* 匹配结尾(右)
*pattern=Pattern.compile("^.*"+prodId.trim()+"$",Pattern.CASE_INSENSITIVE);
* */
param = new BasicDBObject(); // 这是BSON格式的对象,实现了Map接口
BasicDBList condList = new BasicDBList();//存放查询条件的list集合
if (StringUtils.isNotBlank(prodId)) {
pattern=Pattern.compile("^.*"+prodId.trim()+".*$", Pattern.CASE_INSENSITIVE);
param.put("prodId", pattern);
}
if (StringUtils.isNotBlank(prodName)) {
pattern = Pattern.compile("^.*"+prodName.trim()+".*$",Pattern.CASE_INSENSITIVE);
param.put("prodName", pattern);
}
if (StringUtils.isNotBlank(prodStatus)) {
param.put("prodStatus", prodStatus.trim());
}
// 时间段的查询,比较复杂
if(StringUtils.isNotBlank(beginProdPutawayTime)&&StringUtils.isNotBlank(endProdPutawayTime)) {
condList.add(new BasicDBObject("prodPutawayTime", new BasicDBObject("$gte", beginProdPutawayTime +" 00:00:00").append("$lte", endProdPutawayTime +" 00:00:00")));
}
if (StringUtils.isNotBlank(beginProdOutOfStockTime) && StringUtils.isNotBlank(endProdOutOfStockTime)) {
condList.add(new BasicDBObject("prodOutOfStockTime", new BasicDBObject("$gte", beginProdOutOfStockTime +" 00:00:00").append("$lte", endProdOutOfStockTime +" 00:00:00")));
}
if(condList!=null&& condList.size()>0){
param.put("$and",condList);//多条件查询使用and
}
个人总结,如果想要在java中用好mongodb的查询,首先就要熟悉,了解mongodb的语法,只有这样,先写出来查询语句,再使用java进行拼凑,才是王道,
这里:Pattern对象:是java提供的正则对象,专门用来处理正则表达式的,使用它进行拼接条件,它会自动加上
BasicDBObject:符合Mongodb文档型条件的,实现了Map接口,具有map属性,可以使用append方法来拼接and类型的查询条件!
这里需要注意的是,假如是范围查询的话,只能使用append,进行拼接查询原理我就不用解释了吧,毕竟map的特性,相信各位还是有所了解的
本人正在找mongodb-java驱动的源码,有的同学请留言给我,不胜感激
本人亲测有效,欢迎大家采纳
- mongodb在java中进行模糊查询以及时间段查询总结
- 在HQL中使用单个的模糊查询,以及对于多个查询条件进行查询的话
- java操作mongodb模糊查询
- hbase时间段查询、模糊匹配
- Hibernatre 中使用Criteria 进行时间段查询
- mongodb 模糊查询以及$type使用
- mybatis 模糊查询,与时间段查询
- Mybatis 时间段查询 和 模糊查询
- 在GAE中模拟like查询进行模糊搜索
- Hibernate在Oracle数据库中进行模糊查询日期
- springMVC+Mybatis 在oracle中进行模糊查询
- Java实现对mongodb模糊查询
- MongoDB模糊查询java实现样例
- mongodb 模糊查询
- MongoDB 模糊查询
- MongoDB 模糊查询
- MongoDB 模糊查询
- MongoDB的模糊查询
- Android 之ActivityThead、ActivityManagerService 与activity的管理和创建
- 某饭店招待国外考察团
- [PHP学习]PHP中论foreach里面是否可以写数据查询语句?
- java 多态
- Java初级工程师面试题精选3
- mongodb在java中进行模糊查询以及时间段查询总结
- imageloader加载的详解
- 模拟实现网易新闻客户端
- DFS算法
- Spring的各个jar包的作用介绍
- MYsql 自动停止解决办法
- 20170525
- JAVA导出EXCEL的方法
- linux tty系统分析