[컴][DB] 2.9.0 이전 버전 java driver 에서 mongoDB aggregation 사용하기


aggregation in mongodb with java / jar version for aggregation / jar version for mongodb aggregation / aggregation helper function 만들기 / 사용하기



mongoDB 의 java driver

ref. 1 에 가면 download 를 받을 수 있다.



java driver for aggregation

aggregation helper function 은 java driver version 이 2.9.0 이상부터 제공하는 듯 하다.
Version 2.9.0 of the Java driver provides a new helper method, DBCollection.aggregate() which can be used to create aggregation tasks.[ref. 2]
하지만 그렇다고 해서 aggregation 을 사용하지 못하는 것은 아니다. 사용하고 있는 MongoDB 가 aggregation 을 지원하는 버전이라면 사용할 수 있다.



2.9.0 이전에서 사용하기


mongo-java-driver-2.9.0-sources.jar 를 download 받고, 여기서
  • AggregationOutput.java
  • DBCollection.java
를 가져오자.

AggregationOutput.java 은 사용해야 하니, 알맞은 package 에 집어넣고, DBCollection 내부의 aggregate() 함수만 copy 해 오면 된다. 엉성하지만 대충 아래같이 만들어서 사용하면 된다.



public AggregationOutput dbAggregate(DB db, String collectionName, 
                                        DBObject firstOp, DBObject ... additionalOps){
    if (firstOp == null)
        throw new IllegalArgumentException("aggregate can not accept null pipeline operation");
    
    DBObject command = new BasicDBObject("aggregate", collectionName );
    
    List pipelineOps = new ArrayList();
    pipelineOps.add(firstOp);
    Collections.addAll(pipelineOps, additionalOps);
    command.put( "pipeline", pipelineOps );
    
    CommandResult res = db.command( command );
    res.throwOnError();
    
    return new AggregationOutput( command, res );
    
}


aggregation 함수 사용법

ref.3 에서 예제를 확인할 수 있다.




Reference

  1. http://docs.mongodb.org/ecosystem/drivers/java/
  2. http://docs.mongodb.org/ecosystem/tutorial/use-aggregation-framework-with-java-driver/#java-driver-and-aggregation-framework
  3. http://docs.mongodb.org/ecosystem/tutorial/use-aggregation-framework-with-java-driver/

댓글 없음:

댓글 쓰기