源码下载链接:http://git.oschina.net/zhuhongliang/MongoDB2Java

两种不同的连接数据库的方式来操作。

MongoClient mongoClient = new MongoClient( “localhost” , 27017 );

 

 

方法1:
DB db = mongoClient.getDB( DBName );

 

 

package com.zhl.test;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.bson.Document;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
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 com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;

public class CRUD {

	public static void main(String[] args) {
		CRUD crud = new CRUD();
		crud.conn("test");
		/*crud.findAll();
		crud.insertOne();
		crud.findAll();
		crud.insertMany();
		crud.findAll();*/
	   // crud.findSome();
	    crud.findAll();
	    crud.delete();
	    crud.findAll();  
	    crud.deleteAll();
	    crud.findAll();  
	}
	MongoClient mongoClient;
	MongoDatabase db ;

	
	public void insertOne(){
		
		//插入文档  
        /** 
        * 1. 创建文档 org.bson.Document 参数为key-value的格式 
        * 2. 创建文档集合List 
        * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List) 插入单个文档可以用 mongoCollection.insertOne(Document) 
        * */
		MongoCollection collection = db.getCollection("test");
        Document document = new Document("title", "MongoDB").  
        append("description", "database").  
        append("likes", 100).  
        append("by", "Fly");  

        collection.insertOne(document);  
 
        System.out.println("新增单个文档成功");  
		
	}
	
	public void insertMany(){
		
		//插入文档  
        /** 
        * 1. 创建文档 org.bson.Document 参数为key-value的格式 
        * 2. 创建文档集合List 
        * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List) 插入单个文档可以用 mongoCollection.insertOne(Document) 
        * */
		MongoCollection collection = db.getCollection("test");
        Document document1 = new Document("title", "MongoDB1").  
        append("description", "database1").  
        append("likes", 1001).  
        append("by", "Fly1");  
        Document document2 = new Document("title", "MongoDB2").  
        append("description", "database2").  
        append("likes", 1002).  
        append("by", "Fly2"); 
        Document document3 = new Document("title", "MongoDB3").  
        append("description", "database3").  
        append("likes", 1003).  
        append("by", "Fly3"); 
        List documents = new ArrayList();  
        documents.add(document1);   documents.add(document2);  documents.add(document3); 
        collection.insertMany(documents);  
        System.out.println("批量文档新增成功");  
		
	}
	
	
	
	//获取所有文档
	public void findAll(){
 
		MongoCollection doc =    db.getCollection("test");
		System.out.println("mycolbbb表数量:"+doc.count());
		FindIterable findIterable = doc.find(); 
		MongoCursor mongoCursor = findIterable.iterator();  
		while(mongoCursor.hasNext()){
				System.out.println(mongoCursor.next());
		}

	}
	

	
	//获得所有符合条件的文档
	public void findSome(){
		MongoCollection doc =    db.getCollection("test");
		FindIterable t = doc.find( new Document("likes",100));
		MongoCursor a = t.iterator();
	    while(a.hasNext()){
			System.out.println(a.next());
	    }
	    a.close();
	}
	
	//修改
	public void update(){
		MongoCollection doc =    db.getCollection("test");
		doc.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));  
		
		System.out.println("update:");
	}
	
	//删除一条符合条件的文档
	public void delete(){
		//删除符合条件的第一个文档  
		MongoCollection doc =    db.getCollection("test");
		doc.deleteOne(Filters.eq("likes", 1001));  
       
	}
	
	//删除所有符合条件的文档
	public void deleteAll(){
		 //删除所有符合条件的文档  
		MongoCollection doc =    db.getCollection("test");
		doc.deleteMany (Filters.eq("likes", 200));  
	}
	
	
	public void conn(String DBName){
		 mongoClient = new MongoClient( "localhost" , 27017 );
		 db = mongoClient.getDatabase(DBName);//访问 “test” 数据库
	}
}

 

 

方法2:
MongoDatabase db = mongoClient.getDatabase(DBName);//访问 数据库

package com.zhl.test;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;

public class CRUD2 {
	DB db;
/*	CRUD2(){
		String DBName = "test";
		this.db = conn(DBName);
	}*/
	
	public static void main(String[] args) {
		CRUD2 mongo = new CRUD2();
		String DBName = "test";
		mongo.db = mongo.conn(DBName);
		//mongo.findAll("mycolbbb");
		BasicDBObject query = new BasicDBObject();  
		//query = new BasicDBObject();  
		query.put("title", "MongoDB");  //  20 < i <= 30  new BasicDBObject("$gt", 20).append("$lte", 900000)
		//query.put("_id", new ObjectId("58ca2a3101ccf929c8fd4d79")); //where likes = 840023
		mongo.findOne("mycolbbb", query);
		//query.put("title","MongoDB");
		//mongo.findAll("mycolbbb", query);
		/*query.put("title","MongoDB");
		BasicDBObject res = new BasicDBObject();  
		res.put("天王盖地虎", "宝塔镇河妖");
		BasicDBObject value = new BasicDBObject();  
		value.put("$set", res);
		mongo.update("mycolbbb", query, value);*/
		//mongo.findAll("mycolbbb");
		//BasicDBObject query = new BasicDBObject();  
		//query = new BasicDBObject();  
		//query.put("title", "MongoDB");  //  20 < i <= 30  new BasicDBObject("$gt", 20).append("$lte", 900000)
		//query.put("description", "database3"); //where description = database3
		//query.put("_id",new ObjectId("58ca2a3101ccf929c8fd4d79"));//指定id删除
		//mongo.deleteAll("mycolbbb", query);
		//System.out.println("__________________已删除——————————————————————————");
		//mongo.findAll("mycolbbb");
		/*System.out.println("__________________开始新增——————————————————————————");
		
		
		for(int i = 0; i<10000; i++){
			query = new BasicDBObject("title", "MongoDB").
					   append("description", "database3").
					   append("likes", 1003).
					   append("url", "http://www.朱宏亮.com/mongodb3/").
					   append("by", "朱宏亮.com3");
			mongo.insert("mycolbbb", query);
				
		}*/
		
		DBCursor cursor = mongo.findAll("mycolbbb");

		System.out.println("length:"+cursor.length()+"\t count():"+cursor.count()+"\t itcount():"+cursor.itcount());
		
	}


	public void insert(String tableName, BasicDBObject query){
		DBCollection coll = db.getCollection(tableName);

		coll.insert(query);
	
	}
	

	//获取所有文档
	public DBCursor findAll(String tableName){
		//DB db = conn();
		DBCursor cursor;
		DBCollection coll = db.getCollection(tableName);
		cursor = coll.find();   
		System.out.println("数量:"+cursor.count());
		/*while(cursor.hasNext()) {  
		   System.out.println(cursor.next());  
		} */
		
		//cursor.close();
		return cursor;
	}
	
	//符合条件的第一个
	public void findOne(String tableName, BasicDBObject query){
		DBObject cursor;
		DBCollection coll = db.getCollection(tableName);
		cursor = coll.findOne(query);  
		System.out.println(cursor.toString());
		for(String a : cursor.keySet()){
			System.out.println(a+"\t"+cursor.get(a));
		}
	}
	
	//获得所有符合条件的文档
	public void findAll(String tableName, BasicDBObject query){
		DBCursor cursor;
		DBCollection coll = db.getCollection(tableName);
		cursor = coll.find(query);  
		//System.out.println(cursor.toString());
		System.out.println("数量:"+cursor.count());
		/*while(cursor.hasNext()) {  
		   System.out.println(cursor.next());  
		} */
		cursor.close();
	}
	
	//修改
	public void update(String tableName, BasicDBObject query, BasicDBObject value){
		DBCollection coll = db.getCollection(tableName);
		int num = coll.update(query,value,false,true).getN();
		System.out.println("删除:"+num);
	}
	
	//删除一条符合条件的文档
	public void delete(String tableName, BasicDBObject query){
		DBCollection coll = db.getCollection(tableName);
		DBObject myDoc =  coll.findOne(query);
		int num = coll.remove(myDoc).getN();//删除
		System.out.println("删除:"+num);
	}
	
	//删除所有符合条件的文档
	public void deleteAll(String tableName, BasicDBObject query){
		DBCollection coll = db.getCollection(tableName);
		int num = coll.remove(query).getN();//删除
		System.out.println("删除:"+num);
	}
	
	public DB conn(String DBName){
		 MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
	     DB db = mongoClient.getDB( DBName );
	    
	     return db;
	}
	
	
}

发表评论