mongodb命令行group分组和java代码中group分组
db.test.group({
    key:{"age":1},
    initial:{"count":0},
   $reduce:function(doc,out){ out.count++; } ,
   $finalize:function(out){ return out; }
 }
 )
public class MonTest {
    public static void main(String[] args) {
        monGroup();
    }
    public static void monGroup() {
        ServerAddress sa = new ServerAddress("192.168.0.201", 37017);
        List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>();
        mongoCredentialList.add(MongoCredential.createMongoCRCredential("admin", "admin", "123456".toCharArray()));
        Mongo client = new MongoClient(sa, mongoCredentialList);
        DB database = client.getDB("admin");
        DBCollection coll = database.getCollection("test");
        DBObject keys = new BasicDBObject("age", 1);
        DBObject condition = null;
        DBObject initial = new BasicDBObject("count", 0);
        String reduce = "function(doc,out){out.count++;}";
        String finalize = "function(out){return out;}";
        BasicDBList dbList = (BasicDBList) coll.group(keys, condition, initial, reduce, finalize);
        if (dbList != null) {
            for (int i = 0; i < dbList.size(); i++) {
                DBObject obj = (DBObject) dbList.get(i);
                Object age = obj.get("age");
                Object count = obj.get("count");
                System.out.println("age:" + age + ",count:" + count);
            }
        }
    }
}
  /**
     * mongodb简单分组查询
     *
     * @author:tuzongxun
     * @Title: mongoGroup
     * @param @return
     * @date Jul 19, 2016 8:36:19 AM
     * @throws
     */
    @Override
    public BasicDBList mongoGroup() {
        // TODO Auto-generated method stub
        GroupBy groupBy = GroupBy.key("age").initialDocument("{count:0}").reduceFunction("function(doc, out){out.count++}")
            .finalizeFunction("function(out){return out;}");
        GroupByResults<UserModel> res = mongoTemplate.group("test", groupBy, UserModel.class);
        DBObject obj = res.getRawResults();
        BasicDBList dbList = (BasicDBList) obj.get("retval");
        return dbList;
    }
package spring_mongo.models;
import java.io.Serializable;
public class UserModel implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;
    public UserModel(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "UserModel [name=" + name + ", age=" + age + "]";
    }
}
@Test
    public void mongoGroup() {
        BasicDBList dbList = userDao.mongoGroup();
        if (dbList != null) {
            for (int i = 0; i < dbList.size(); i++) {
                DBObject obj = (DBObject) dbList.get(i);
                Object age = obj.get("age");
                Object count = obj.get("count");
                System.out.println("age:" + age + ",count:" + count);
            }
        }
    }
mongodb命令行group分组和java代码中group分组的更多相关文章
- MongoDB命令行操作
		
本文专门介绍MongoDB的命令行操作.其实,这些操作在MongoDB官网提供的Quick Reference上都有,但是英文的,为了方便,这里将其稍微整理下,方便查阅. 这里用来做测试的是远端(10 ...
 - 如何使用命令行编译和运行java文件
		
相信大家现在一般都在使用IDE环境来开发运行java文件,但我觉得可以在命令行里面简单运行java文件,技多不压身. 接下来我来说一下编译和运行java文件: 第一步,首先下一个入门程序(注意:一定要 ...
 - 命令行编译多个java文件
		
如何使用命令行编译多个java文件 文件结构: method 1 cd javaproject javac -sourcepath javapath -d classpath javapath/*.j ...
 - Android color(颜色) 在XML文件和java代码中
		
Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...
 - IDEA插件:快速删除Java代码中的注释
		
背景 有时,我们需要删除Java源代码中的注释.目前有不少方法,比如: 实现状态机.该方式较为通用,适用于多种语言(取决于状态机支持的注释符号). 正则匹配.该方式容易误判,尤其是容易误删字符串. ...
 - Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)
		
<bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil& ...
 - 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4
		
以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...
 - 关于在Java代码中写Sql语句需要注意的问题
		
最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. String st ...
 - java代码中获取进程process id(转)
		
另一方面,线程ID=进程ID+内部线程对象ID并不成立, 参考: blog.csdn.net/heyetina/article/details/6633901 如何在java代码中获取进 ...
 
随机推荐
- linux 搭建PPTP
			
pptp简介 PPTP,Point to Point Tunneling Protocol,点对点隧道协议,这是一种支持多协议虚拟专用网络(VPN)技术.远程用户能够通过装有点对点协议的系统安全访问公 ...
 - MonogoDB 查询小结
			
MonogoDB是一种NoSQL数据库 优点: 1.数据的存储以json的文档进行存储(面向文档存储) 2.聚合框架查询速度快 3.高效存储二进制大对象 缺点: 1.不支持事务 2.文件存储空间占用过 ...
 - Effective Java 之-----消除过期的对象引用
			
public class Stack { private Object[] elements; private int size = 0; private static final int DEFAU ...
 - C# Ioc 接口注册实例以及注入MVC Controller
			
当弄一个小程序时,就忽略了使用Ioc这种手段,作为一个帅气程序员,代码规范,你懂的~,废话不多说,快速搭建一个Ioc接口实例以及直接注入到 MVC Controller 构造函数中如下: MVC in ...
 - python3 爬取百合网的女人们和男人们
			
学Python也有段时间了,目前学到了Python的类.个人感觉Python的类不应称之为类,而应称之为数据类型,只是数据类型而已!只是数据类型而已!只是数据类型而已!重要的事情说三篇. 据书上说一个 ...
 - Vue.js搭建路由报错 router.map is not a function,Cannot read property ‘component’ of undefined
			
错误: 解决办法: 2.0已经没有map了,使用npm install vue-router@0.7.13 命令兼容1.0版本vue 但是安装完之后会出现一个错误: Cannot read prope ...
 - BZOJ 4318: OSU! [DP 概率]
			
传送门 题意:变成了告诉每个操作的成功概率,并且得分是三次方 一样....分别维护$x,\ x^2,\ x^3$的期望就行了 注意$x^3$是我们最终求的得分,即使失败得分也要累加上之前的 #incl ...
 - 启动mysql遇到1067问题
			
最近安装sql的时候,出现一些问题:启动的时候出现1067错误 在网上找了很多方法,比如删除mysql安装目录下date的bdata1, ib_logfile0, .. 等innodb的文件, 比如修 ...
 - 构建企业级Nginx+Keepalived集群架构
			
随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx. Nginx高性能.稳定性成为IT人士青睐的http和反向代理服务器,今天我们来实战构建Nginx+Keepalived高可用架 ...
 - JSP的几种跳转方式的异同
			
1 <jsp:foward page="url" /> 服务端跳转,立即跳转,后续语句不会执行: 2 <% response.sendRedirect(" ...