monogo-java-driver 3.0バージョンの学習例は公式サイトのガイドによって書かれています.

7842 ワード

公式ガイドの住所 http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/
サンプルディレクトリ構造

pom.xml

    
      junit
      junit
      4.11
      test
    
    
	org.mongodb
		mongo-java-driver
		3.0.3
	
  
mongodb.properties
mongodb.host=127.0.0.1
mongodb.port=
mongodb.replicaSet=
mongodb.connectionsPerHost=100
mongodb.threadsAllowedToBlockForConnectionMultiplier=5
mongodb.maxWaitTime=120000
mongodb.connectTimeout=60000
mongodb.socketTimeout=60000
mongodb.autoConnectRetry=true
mongodb接続配置
package mongodb.mongodb.test;

import java.util.ResourceBundle;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;

/**
 * mongodb       
 * @author wbq
 *
 */
public class MongoManager {
	 //MongoClient           ,      ,        ,                    
	 //Mongo       ,  mongodb API      MongoClient  Mongo 
	private MongoClient mongoClient = null;  
	
	private static MongoManager instance = null;
	
	private MongoManager(){
		//          
		ResourceBundle bundle = ResourceBundle.getBundle("mongodb");
		
		MongoClientOptions.Builder build = new MongoClientOptions.Builder(); 
		//             connection  ,  100
		build.connectionsPerHost(Integer.valueOf(bundle.getString("mongodb.connectionsPerHost")));
		build.threadsAllowedToBlockForConnectionMultiplier(Integer.valueOf(bundle.getString("mongodb.threadsAllowedToBlockForConnectionMultiplier")));
		/*
		 *             ,                         2  
		 *       ,    maxWaitTime            ,       Exception
		 *       maxWaitTime     ,                    
		 */
		build.maxWaitTime(Integer.valueOf(bundle.getString("mongodb.maxWaitTime")));  
		//         timeout   1  
		build.connectTimeout(Integer.valueOf(bundle.getString("mongodb.connectTimeout"))); 
		build.socketTimeout(Integer.valueOf(bundle.getString("mongodb.socketTimeout")));
		
		MongoClientOptions myOptions = build.build();
        //         
        mongoClient = new MongoClient("127.0.0.1", myOptions);            
	}
	
	public static MongoManager getInstance(){
		if(instance ==null){
			instance = new MongoManager();
		}
		return instance;
	}
	
	public static MongoClient getMongoClient(){
		return MongoManager.getInstance().mongoClient;
	}
}
テストコード
package mongodb.mongodb.test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.bson.Document;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.mongodb.Block;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

import static com.mongodb.client.model.Filters.*;
import static com.mongodb.client.model.Projections.*;
import static com.mongodb.client.model.Sorts.*;

import com.mongodb.client.model.BulkWriteOptions;
import com.mongodb.client.model.DeleteOneModel;
import com.mongodb.client.model.InsertOneModel;
import com.mongodb.client.model.ReplaceOneModel;
import com.mongodb.client.model.UpdateOneModel;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;

public class MongoTest {
	
	private MongoClient client = MongoManager.getMongoClient();
	private MongoDatabase md = client.getDatabase("local");
	private MongoCollection coll = null;
	
	//    
	@Before
	public void create(){
		md.createCollection("test");
		coll = md.getCollection("test");
	}
	
	@Test
	public void run(){
		add();
		query();
		update();
		testDel();
		bulk();
	}
	
	//    
	public void add(){
		
		//      
		Document doc = new Document("name","MongoDB").append("type", "database").append("count", 1)
				.append("info", new Document("x", 203).append("y", 102));
		coll.insertOne(doc);
		
		//      
		List list = new ArrayList();
		for(int i= 0 ;i< 100 ;i++){
			list.add(new Document("i", i));
		}
		coll.insertMany(list);
	}
	
	//  
	public void query(){
		//     
		Document doc = coll.find().first();
		System.out.println(doc.toJson());
		
		//    
		try(MongoCursor cursor = coll.find().iterator()){
			while(cursor.hasNext()){
				System.out.println(cursor.next().toJson());
			}
		}
		
		//       
		doc = coll.find(eq("i", 71)).first();
		System.out.println(doc.toJson());
		//       
		Block printBlock = new Block(){

			@Override
			public void apply(Document t) {
				System.out.println("i>50  "+t.toJson());
			}
		};
		coll.find(gt("i",50)).forEach(printBlock);
		//           
		doc = coll.find(exists("i")).sort(descending("i")).first();
		System.out.println("sort: " + doc.toJson());
		
		doc = coll.find().projection(excludeId()).first();
		System.out.println("excludeId: "+doc.toJson());
	}
	
	
	//    
	public void update(){
		//      
		coll.updateOne(eq("i","10"), new Document("$set",new Document("i", 110)));
		//        $set         $inc                
		UpdateResult updateResult = coll.updateMany(lt("i", 100),new Document("$inc",new Document("i",100)));
		System.out.println("ModifiedCount:" + updateResult.getModifiedCount());
	}
	
	//    
	public void testDel(){
		//                  
		coll.deleteOne(eq("i",110));
		//                
		DeleteResult deleteResult = coll.deleteMany(gte("i",100));
		System.out.println("DeletedCount:"+deleteResult.getDeletedCount());
	}
	
	//    
	public void bulk(){
		//  
		coll.bulkWrite(
			Arrays.asList(new InsertOneModel(new Document("_id", 1)),
						  new InsertOneModel(new Document("_id", 2)),
						  new InsertOneModel(new Document("_id", 3)),
						  new UpdateOneModel(new Document("_id", 1),new Document("$set", new Document("x", 2))),
						  new DeleteOneModel(new Document("_id",2)),
						  new ReplaceOneModel(new Document("_id", 3), new Document("_id", 3).append("x",4))));
		//  
		coll.bulkWrite(
				  Arrays.asList(new InsertOneModel(new Document("_id", 4)),
				                new InsertOneModel(new Document("_id", 5)),
				                new InsertOneModel(new Document("_id", 6)),
				                new UpdateOneModel(new Document("_id", 4),
				                                     new Document("$set", new Document("x", 2))),
				                new DeleteOneModel(new Document("_id", 5)),
				                new ReplaceOneModel(new Document("_id", 6),
				                                      new Document("_id", 6).append("x", 4))),
				  new BulkWriteOptions().ordered(false));
		
	}
	
	@After
	public void queryAll(){
		System.out.println(coll.count());
        FindIterable docs = coll.find();
        MongoCursor cur = docs.iterator();
        while(cur.hasNext()){
        	System.out.println(cur.next());
        }
        //    
        coll.drop();
	}
}