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代码中获取进 ...
随机推荐
- PLSQL Developer软件使用大全
PLSQL Developer软件使用大全 第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发.如今,有越来越 ...
- cglib源码主流程源码-我们到底能走多远系列48
扯淡 祝各位在园里的朋友新年快乐! 辛苦一年,为更好的自己也为更好的世界,很多人要感谢你们,你们也应该有很多人要感谢吧. 看了马斯克的采访视频,又想起兰迪·鲍许的最后一课,时光迁移,唯有梦想可坚持. ...
- fiddler2请求参数乱码
win7 1.windows按钮+R 2.输入regedit +回车+是 3.HKEY_CURRENT_USER\Software\Microsoft\Fiddler2 4.右键新建,选字符串值 加上 ...
- 洛谷 [P2701] 巨大的牛棚
首先,本题是一道最大子矩阵问题,且m,n较小,可以使用DP做, 与 洛谷 [P1387]最大正方形 做法相同. #include <iostream> #include <cstdi ...
- IntelliJ IDEA使用心得之基础篇
今天和大家分享一个非常好用的Java开发工具-IntelliJ IDEA. 下载地址:https://www.jetbrains.com/idea/ 目录: 1)IntelliJ IDEA使用心得之基 ...
- Go基础之--接口
定义 在Go语言中,一个类只要实现了接口要求的所有函数,我们就说这个类实现了该接口 interface类型可以定义一组方法,用来表示一个对象的行为特征,interface不能包含任何变量,接口是引用类 ...
- python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框
最近因为要实现模板匹配,需要在视频中选中一个目标,然后框出(即作为模板),对其利用模板匹配的方法进行检测.于是需要首先选出视频中的一帧,但是在利用摄像头读视频的过程中我唯一能想到的方法就是: 1.在视 ...
- ubuntu的网络配置
1,检查网络是否通畅 ping www.baidu.com 2,检查网线是否插好 3,使用ifconfig查看当前活跃网络接口 ifconfig 4,配置IP地址.子网掩码.网关地址 sudo vi ...
- 关于js 全选 反选
prop 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. attr 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. $("#selectAll ...
- 搭建简易的c语言与python语言CGI和Apache服务器的开发环境
搭建简易的c语言CGI和Apache服务器的开发环境 http://www.cnblogs.com/tt-0411/archive/2011/11/21/2257203.html python配置ap ...