MongoDB依赖spring-data-mongdb的一些查询

记录一下本次用到的MongoTemplate  Criteria Query 的写法

MongoTemplate  Criteria Query这个三个分别来自以下的包

org.springframework.data.mongodb.core.MongoTemplate;
org.springframework.data.mongodb.core.query.Criteria;
org.springframework.data.mongodb.core.query.Query;

1.distinct

简单的distinct

//str 是要聚合的字段名
List list = mongoTemplate.getCollection("message").distinct(str);
带条件的distinct
//key是相当于where中 的字段名,value则是值,str则是要聚合的字段名
DBObject queryObject = Query.query(Criteria.where(key).is(value)).getQueryObject();
List list = mongoTemplate.getCollection("message").distinct(str,queryObject);
2.count
Long num=mongoTemplate.count(new Query(criteria),Message.class);

3.正则表达式
criterias.and("msgBodyMap."+key[i]).regex(".*?\\" +value[i]+ ".*");

4.查询范围时间
String str_start= (String) map.get("receiveTime_begin")
String str_end= (String) map.get("receiveTime_end");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date end=sdf.parse(str_end);
 Date  start=sdf.parse(str_start);
 criterias.and("receiveTime").gte(start).lte(end);
注意:查日期范围的,不能写两个criteria,否则会报错,必须写到一个criteria中才行
5.排序,分页
Query query = new Query(criteria);
query.skip(pageNo);
query.limit(pageSize);
query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "receiveTime")));//按某个字段进行排序
list<Message>=mongoTemplate.find(query,Message.class);





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值