MongoDB count distinct group by JavaAPI查询
MongoDB 查询 by group count Distinct
2023-09-11 14:14:09 时间
import java.net.UnknownHostException; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.Mongo; public class MongoDBTest { private static DB db = null; static{ Mongo mongo = null; try { mongo = new Mongo("localhost", 27017); } catch (UnknownHostException e) { e.printStackTrace(); } db = mongo.getDB("TestDB"); //连接数据 } /** * select count(*) from list */ public Long m1() { DBCollection collection = db.getCollection("list"); return collection.count(); } /** * select count(*) from list where userId = 'orange' */ public Long m2(){ DBCollection listCollection = db.getCollection("list"); BasicDBObject query =new BasicDBObject(); query.put("userId", "orange"); return listCollection.count(query); } /** * select count(*) from list where userId = 'orange' and time >= '20101201' and time <= '20101211' */ public Long m3(){ DBCollection listCollection = db.getCollection("list"); BasicDBObject query =new BasicDBObject(); query.put("userId","orange"); query.put("time", new BasicDBObject("$gte", "20101201").append("$lte", "20101211")); return listCollection.count(query); } /** * select count(distinct(userId)) from detail where time >= '20101201' and time <='20101211' */ public int m4() { DBCollection collection = db.getCollection("detail"); BasicDBObject query = new BasicDBObject(); query.put("time", new BasicDBObject("$gte", "20101201").append("$lte", "20101211")); return collection.distinct("userId", query).size(); } /** * select date_format(time, '%Y-%m-%d %H') as sj ,count(*) from detail group by sj */ public void m5() { DBCollection collection = db.getCollection("detail"); String formatDate = "function(obj,doc){" + "var date = new Date(doc.time);" + "var dateKey = date.getFullYear()+\"-\"+(date.getMonth()+1)+\"-\"+date.getDate(); " + "return {'time':datekey}" + "}"; BasicDBObject key = new BasicDBObject(); key.put(formatDate, true); // 要分组的列 BasicDBObject query = new BasicDBObject(); // where条件 String reduce = "function (obj, prev) {prev.count++}"; BasicDBObject initial = new BasicDBObject(); initial.append("count", 0); // 每列初始值 BasicDBList group = (BasicDBList) collection.group(key, query, initial, reduce); System.out.println(group); } }
相关文章
- 学习MongoDB 六: MongoDB查询(游标操作、游标信息)(三)
- mongodb聚合 group
- mongodb .net driver
- MongoDB最佳实践及性能优化(DTCC中国数据库技术大会分享PPT)
- 基于jsp+javabean+servlet+mongodb 增删改查
- 【MongoDB】从入门到精通mongdb系列学习宝典,想学mongodb小伙伴请进来
- mongodb查询优化,索引、复合索引、唯一索引、explain分析查询速度
- mongodb的查询方式与sql语句对比
- 图解 MongoDB 地理位置索引的实现原理(转)
- java连接MongoDB查询导出为excel表格
- Mac上安装MongoDB
- MongoDB的备份与恢复(转载)
- 【mongodb】Jemeter调用Python操作mongoDB压测
- MongoDB 通过配置文件启动
- mongoDB-db.collection.bulkWrite()
- C#-对MongoDB进行查询
- MongoDB-查询大于某个时间,小于某个时间,在某一段时间范围
- MongoDB-聚合aggregate