public static void main(String[] args) { // TODO Auto-generated method stub try { MongoClient mc = new MongoClient("localhost"); DB db = mc.getDB("mydb"); DBCollection dbc = db.getCollection("books"); /*BasicDBObject book= new BasicDBObject(); book.put("name", "자바의 정석"); book.put("pages", 600); dbc.insert(book); book= new BasicDBObject(); book.put("name", "스프링4"); book.put("pages", 250); dbc.insert(book); book= new BasicDBObject(); book.put("name", "JQuery"); book.put("pages", 150); dbc.insert(book); book= new BasicDBObject(); book.put("name", "오라클 프로그램"); book.put("pages", 800); dbc.insert(book); book= new BasicDBObject(); book.put("name", "AngularJS"); book.put("pages", 130); dbc.insert(book); book= new BasicDBObject(); book.put("name", "MongoDB"); book.put("pages", 650); dbc.insert(book); book= new BasicDBObject(); book.put("name", "Hadoop"); book.put("pages", 300); dbc.insert(book); book= new BasicDBObject(); book.put("name", "HIVE"); book.put("pages", 350); dbc.insert(book); book= new BasicDBObject(); book.put("name", "PIG"); book.put("pages", 650); dbc.insert(book); book= new BasicDBObject(); book.put("name", "HTML5"); book.put("pages", 360); dbc.insert(book);*/ String map = "function(){" + "var category;" + "if(this.pages>=300){" + "category='Big Books';" + "}else{" + "category='Small Books';}" + "emit(category,{name:this.name});}"; String reduce = "function(key,values){" + "var sum=0;" + "values.forEach(function(doc){" + "sum+=1;" + "});" + "return {books:sum};}"; MapReduceCommand cmd = new MapReduceCommand(dbc, map, reduce, null, MapReduceCommand.OutputType.INLINE, null); MapReduceOutput out = dbc.mapReduce(cmd); for (DBObject o : out.results()) { System.out.println(o.toString()); } } catch (Exception ex) { System.out.println(ex.getMessage()); } }