mongodb java driver 聚合框架
生活随笔
收集整理的這篇文章主要介紹了
mongodb java driver 聚合框架
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
Mongo 2.2.0版本介紹了mongo的聚合框架,該框架可以很方便的實(shí)現(xiàn)一些聚合操作,例如計(jì)數(shù)、取和、計(jì)算平均值。框架使用C++編寫(xiě),支持多線程,可以很好的跨平臺(tái)。下面是一個(gè)mongod java driver的一個(gè)簡(jiǎn)單的例子。 /* * 注意聚合需要mongo版本在2.2往上,如果mongo版本比較低,會(huì)報(bào)MongoDB Java driver : no such cmd: aggregate的錯(cuò)誤。 * 下面附上mongo官方手冊(cè):http://docs.mongodb.org/manual/contents/ * 這個(gè)地址列出了mongo支持的所有查詢與聚合命令:http://docs.mongodb.org/manual/reference/operator/ * 這個(gè)地址列出了shell支持的所有函數(shù):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版本比較低,會(huì)報(bào)MongoDB Java driver : no such cmd: aggregate的錯(cuò)誤。 * 下面附上mongo官方手冊(cè):http://docs.mongodb.org/manual/contents/ * 這個(gè)地址列出了mongo支持的所有查詢與聚合命令:http://docs.mongodb.org/manual/reference/operator/ * 這個(gè)地址列出了shell支持的所有函數(shù):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");// //創(chuàng)建數(shù)據(jù) // 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拼裝需要的數(shù)據(jù),包含department列、amount列和id列 DBObject fields = new BasicDBObject("department", 1); fields.put("amount", 1); fields.put("_id", 0); DBObject project = new BasicDBObject("$project", fields );// 對(duì)上面的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();}}轉(zhuǎn)載于:https://my.oschina.net/u/147181/blog/164962
總結(jié)
以上是生活随笔為你收集整理的mongodb java driver 聚合框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android学习之Shared Pre
- 下一篇: 做一个.net 程序员要掌握的知识提纲