monogo-java-driver 3.0バージョンの学習例は公式サイトのガイドによって書かれています.
公式ガイドの住所 http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/
サンプルディレクトリ構造
pom.xml
サンプルディレクトリ構造
pom.xml
junit
junit
4.11
test
org.mongodb
mongo-java-driver
3.0.3
mongodb.propertiesmongodb.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();
}
}