博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB count distinct group by JavaAPI查询
阅读量:6920 次
发布时间:2019-06-27

本文共 2312 字,大约阅读时间需要 7 分钟。

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);	}}

转载地址:http://uahcl.baihongyu.com/

你可能感兴趣的文章
自律·财大自习·Java
查看>>
git 命令使用的步骤及方法
查看>>
vue路由打开一个新的窗口
查看>>
小猿圈Linux学习-十个方便的 Bash 别名
查看>>
PHP 设计模式(杂项)
查看>>
Flutter状态管理学习手册(一)——ScopedModel
查看>>
Vue-cli升级webpack4以及各种loader升级配置
查看>>
java学习笔记-4.20
查看>>
Java集合-ArrayList源码解析-JDK1.8
查看>>
Audio Queue Services Programming Guide
查看>>
Dubbo成熟度
查看>>
LeetCode每日一题:链表的中间结点(No.876)
查看>>
Android触摸事件传递机制
查看>>
MRouter(Android路由)
查看>>
面试官问我注解的使用有没有踩过坑
查看>>
Vue-js 零基础 国外案例 DEMO 全课程讲解 1 我是---- 静静
查看>>
藏古拉雍官方旗舰店,藏古拉雍贴膏
查看>>
linux 创建连接命令 ln -s 软链接
查看>>
使用canvas绘制圆弧动画
查看>>
MySQL Binlog 解析工具 Maxwell 详解
查看>>