mongodb java driver 聚合框架
2013-09-28 00:00
417 查看
Mongo 2.2.0版本介绍了mongo的聚合框架,该框架可以很方便的实现一些聚合操作,例如计数、取和、计算平均值。框架使用C++编写,支持多线程,可以很好的跨平台。下面是一个mongod java driver的一个简单的例子。
/* * 注意聚合需要mongo版本在2.2往上,如果mongo版本比较低,会报MongoDB Java driver : no such cmd: aggregate的错误。 * 下面附上mongo官方手册:http://docs.mongodb.org/manual/contents/ * 这个地址列出了mongo支持的所有查询与聚合命令:http://docs.mongodb.org/manual/reference/operator/ * 这个地址列出了shell支持的所有函数:http://docs.mongodb.org/manual/reference/method/ */ package com.yeetrack.mongodb.test; import java.net.UnknownHostException; import com.mongodb.AggregationOutput; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.MongoClient; public class MyMongdbAggregation { /** * Java Driver and Aggregation Framework * @author youthflies * @throws UnknownHostException * 注意聚合需要mongo版本在2.2往上,如果mongo版本比较低,会报MongoDB Java driver : no such cmd: aggregate的错误。 * 下面附上mongo官方手册:http://docs.mongodb.org/manual/contents/ * 这个地址列出了mongo支持的所有查询与聚合命令:http://docs.mongodb.org/manual/reference/operator/ * 这个地址列出了shell支持的所有函数:http://docs.mongodb.org/manual/reference/method/ */ public static void main(String[] args) throws UnknownHostException { // TODO Auto-generated method stub MongoClient mongoClient = new MongoClient("192.22.219.163", 27017); DB db = mongoClient.getDB("mydb"); DBCollection collection = db.getCollection("expenses"); // //创建数据 // String department = "Sales"; // for(int i=1;i<=15;i++) // { // if(i==6) // department = "egineering"; // if(i==11) // department = "Human"; // BasicDBObject basicDBObject = new BasicDBObject("employee", i). // append("department", department). // append("amount", i*2+1). // append("type", "airfare"); // collection.insert(basicDBObject); // // } //首先利$match筛选出type为airfate的行 DBObject match = new BasicDBObject("$match", new BasicDBObject("type", "airfare") ); // 利用$project拼装需要的数据,包含department列、amount列和id列 DBObject fields = new BasicDBObject("department", 1); fields.put("amount", 1); fields.put("_id", 0); DBObject project = new BasicDBObject("$project", fields ); // 对上面的project利用group分组 DBObject groupFields = new BasicDBObject( "_id", "$department"); groupFields.put("average", new BasicDBObject( "$avg", "$amount")); DBObject group = new BasicDBObject("$group", groupFields); // run aggregation AggregationOutput output = collection.aggregate( match, project, group ); System.out.println(output); mongoClient.close(); } }
相关文章推荐
- MongoDB-JAVA-Driver 3.2版本常用代码全整理(3) - 聚合
- MongoDB-JAVA-Driver 3.2版本常用代码全整理(3) - 聚合
- MongoDB-JAVA-Driver 3.2版本常用代码全整理(3) - 聚合
- mongodb的高级操作(聚合框架)
- mongo-java-driver -3.2.2学习笔记-02-MongoDB Driver Admin Quick Tour
- Java定时框架Quartz实例详解与定时任务的Mongodb、Mysql持久化实现(一)Quartz组件
- mongodb java driver3.0初探
- MongoDB的聚合框架Aggregation Framework入门学习教程
- MongoDB Java Driver操作指南
- JAVA - mongodb 聚合查询方式三
- Mongodb--聚合框架
- 升级到0.9 log4jmongodb(mongo-java-driver 3.x)后,报No server chosen by WritableServerSelector from cluster description ClusterDescription
- mongodb java driver3.0初探
- mongodb 之聚合框架--aggregate
- MongoDB中的分组聚合在java中的用法
- mongodb dirver for java【聚合】
- java mongodb聚合统计查询,比较两个字段
- MongoDB推出聚合框架 新增Group By功能
- MongoDB java客户端mongo-java-driver使用
- MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)