mongodb的group详细成功案例

/**
	 * 查询财务报表
	 * @author liupeng
	 * @param timeStart
	 * @param timeEnd
	 * @return
	 */
	//public List<KeyRequest> findByTimeForFinal(String timeStart, String timeEnd) {
	public List<DBObject> findByTimeForFinal(String timeStart, String timeEnd) {

		BasicDBObject key = new BasicDBObject();
		key.put("kq_timer_start", true);   //groupBy的条件
		BasicDBObject cond = new BasicDBObject("kq_timer_start",new BasicDBObject("$gte",timeStart).append("$lt", timeEnd));//查询where条件
		BasicDBObject initial = new BasicDBObject();
		initial.put("cou",0);              //需要查询出来的内容
		initial.put("kq_autosum", "");     //需要查询出来的内容
		initial.put("kq_accountsum", "");  //需要查询出来的内容
		String reduce = "function(obj,out){" +
				"out.cou++;" +
				"out.kq_autosum = out.kq_autosum+obj.kq_autosum+'_';" +
				"out.kq_accountsum = out.kq_accountsum+obj.kq_accountsum+'_';}";
		BasicDBList returnList = (BasicDBList)keyRequest.group(key, cond, initial, reduce);
		System.out.println(returnList);
		List<DBObject> list = new ArrayList<DBObject>();
		Object[] o = returnList.toArray();
		for (int i = 0; i < o.length; i++) {
			DBObject dbObject = (DBObject)o[i];
			list.add(dbObject);
		}
		return list;

		//通过以下形式可以打印出BasicDBList中的任何值
		/*
		System.out.println(returnList);
		Object[] o = returnList.toArray();
		for (int i = 0; i < o.length; i++) {
			DBObject dbObject = (DBObject)o[i];
			System.out.println(dbObject.get("kq_id"));
		}
		*/

	}
	

mongodb的group详细成功案例

时间: 2024-08-14 04:55:16

mongodb的group详细成功案例的相关文章

浅析mongodb中group分组

这篇文章主要介绍了浅析mongodb中group分组的实现方法及示例,非常的简单实用,有需要的小伙伴可以参考下. group做的聚合有些复杂.先选定分组所依据的键,此后MongoDB就会将集合依据选定键值的不同分成若干组.然后可以通过聚合每一组内的文档,产生一个结果文档.和数据库一样group常常用于统计.MongoDB的group还有很多限制,如:返回结果集不能超过16M, group操作不会处理超过10000个唯一键,好像还不能利用索引[不很确定]. 一.Group大约需要一下几个参数. 1

【MongoDB】3.详细命令集合

[注意:MongoDB自动将_id字段设置为主键] --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 话不多说  直接 开始敲命令吧! [注意1:MongoD

MongoDB 聚合Group(一)

一.简介 db.collection.group()使用JavaScript,它受到了一些性能上的限制.大多数情况下,$ group在Aggregation Pipeline提供了一种具有较少的限制适用的替代.可以通过指定的键的集合中的文档和执行简单的聚合函数.在2.2版本中,返回的数组可以包含最多20000个元素:即最多20000个独特的分组. 我们比较熟悉的group by 的sql语句select key from table  groupby key,而mongoDB没提供SQL那样通过

mongodb MongoDB 聚合 group

MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). 基本语法为:db.collection.aggregate( [ <stage1>, <stage2>, ... ] ) 现在在mycol集合中有以下数据: { "_id" : 1, "name" : "tom", "sex" :

mongodb MongoDB 聚合 group(转)

MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). 基本语法为:db.collection.aggregate( [ <stage1>, <stage2>, ... ] ) 现在在mycol集合中有以下数据: { "_id" : 1, "name" : "tom", "sex" :

mongodb runcommand group使用方法

db.runCommand( { group: { ns:"testc", key:{name:null}, initial:{num:0}, $reduce:function(doc,prev) { prev.num++; } } } ) { "retval":[ { "name":"sulin", "num":1 } , { "name":"lihui", &qu

delphi mongodb 调用group

var   query,b1,b2:tbson;   buf:tbsonbuffer;   code:TBsonCodeWScope; begin if dbman=nil then dbman:=tdbmanage.create; buf:=tbsonbuffer.Create;   buf.startObject('group');   buf.append('ns','testc'); buf.startObject('key');   buf.append('name',null);  

MongoDB高级查询详细

前言 前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦.如果没有安装MongoDB去看我的上一篇博客  MongoDB下载安装与简单增删改查 前奏:启动mongdb数据库服务,并进入shell界面 > cmd > cd C:\Program Files\MongoDB\bin  --进入mongdb安装文件的bin目录下. > net start mongoDB;  --开启mongoDB数据库服务 > mongo   --进

MongoDB 使用group by 并显示其他列max值

以下脚本实现功能为把word_info表通过word字段去重,并写到到word_info_new表里 db.word_info.aggregate([ {$group: { _id:"$word" , meaning:{$max:"$meaning"}, usphonetic:{$max:"$usphonetic"} } }]).forEach( function(dc){ db.word_info_new.insert( {"word