Java对MongoDB的基础操做

import java.util.ArrayList;
import java.util.regex.Pattern;
import org.bson.Document;
import com.mongodb.BasicDBObject; 
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.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;

public class MongoTest { 
	private static MongoClient client=null;
	private static MongoDatabase database=null;

	   public static void main( String args[] ){
		   insert();
 		   findAll();
		   findByFilter();
		   findByPattern();
		   findByParams();
		   delete();
		   update();
	   }
	    
	   public static void getCollection() {                                                              //获取数据库名为test中的集合student
		   database=getConnectionWithoutParams().getDatabase("test");                                    //连接到数据库
		   MongoCollection <Document> collection=getDatabase().getCollection("student");
		   System.out.println("集合 student 选择成功"); 
	   }
	   
	   
	   public static void insert() {                                                                    //插入数据
		   MongoCollection<Document> dbCol=getDatabase().getCollection("student");
		   ArrayList<Document> list=new ArrayList<>();
		   Document doc1=new Document();
		   doc1.append("name", "李华").append("age", 29).append("address", "江苏南京");
		   list.add(doc1);
		   
		   Document doc2=new Document();
		   doc2.append("name", "赵兰").append("age", 27).append("address","湖南长沙");
		   list.add(doc2);
		   
		   dbCol.insertMany(list);
		   System.out.println("插入成功");
 
	   }
	   
	   public static void findAll() {                                                                  //遍历查询数据
		   MongoCollection<Document> dbCol=getDatabase().getCollection("student");
		   FindIterable<Document> findIterable=dbCol.find();
		   MongoCursor<Document> mongoCursor = findIterable.iterator();
		   while(mongoCursor.hasNext()) {
			   Document doc=mongoCursor.next();
			   System.out.println("name:"+doc.getString("name")+"\t age:"+doc.getInteger("age")+"\t address:"+doc.getString("address"));

		   }
	   }
	   
	   public static void findByFilter() {                                                           //查询指定的数据
		   MongoCollection<Document> dbCol=getDatabase().getCollection("student");
		   BasicDBObject queryObject=new BasicDBObject();
		   queryObject.append("name", "李华"); 
		   FindIterable<Document> findIterable = dbCol.find(queryObject);
		   MongoCursor<Document> cursor = findIterable.iterator();
		   while(cursor.hasNext()) {
			   Document doc=cursor.next();
			   System.out.println("name:"+doc.getString("name")+"\t age:"+doc.getInteger("age")+"\t address:"+doc.getString("address"));
		   }
	   }
	   
	   public static void findByPattern() {                                                        //按照模式查询数据
		   System.out.println("按照模式查询");
		   MongoCollection<Document> dbCol=getDatabase().getCollection("student");
		   Pattern queryPattern=Pattern.compile("华",Pattern.CASE_INSENSITIVE);
		   BasicDBObject queryObject=new BasicDBObject("name",queryPattern);
		   FindIterable<Document> findIterable=dbCol.find(queryObject);
		   MongoCursor<Document> cursor=findIterable.iterator();
		   while(cursor.hasNext()) {
			   Document doc=cursor.next();
			   System.out.println("name:"+doc.getString("name")+"\t age:"+doc.getInteger("age")+"\t address:"+doc.getString("address"));
		   }
	   }
	   
	   public static void findByParams() {                                                       //条件查询
		   /*
		    *         $gt:> 
		    *         $gte:>= 
                      $eq:        = 
                      $ne:        != 
                      $lt:        < 
                      $lte:        <=
                      $in:        in
                      $nin:       not in
		    */
		   MongoCollection<Document> dbCol=getDatabase().getCollection("student");
		   BasicDBObject gt=new BasicDBObject("$gt",24);
		   BasicDBObject queryOBject=new BasicDBObject("age",gt);
		   FindIterable<Document> findIterable=dbCol.find(queryOBject);
		   MongoCursor<Document> cursor=findIterable.iterator();
		   while(cursor.hasNext()) {
			   Document doc=cursor.next();
			   System.out.println("name:"+doc.getString("name")+"\t age:"+doc.getInteger("age")+"\t address:"+doc.getString("address"));
		   }
		   
	   }
	   
	   public static void delete() {                                                          //删除数据
		   MongoCollection<Document> dbCol=getDatabase().getCollection("student");
		   Document doc=new Document().append("name", "李华");
		   DeleteResult result = dbCol.deleteMany(doc);
		   System.out.println("删除了:"+result.getDeletedCount()+"\t 行.");
		   findAll();
	   }
	   
	   public static void update() {                                                         //更新数据
		   findAll();
		   MongoCollection<Document> dbCol=getDatabase().getCollection("student");
		   BasicDBObject gt=new BasicDBObject("$gt",25);
		   BasicDBObject queryObject=new BasicDBObject("age",gt);
		   BasicDBObject updateObject=new BasicDBObject("address","上海");
		   UpdateResult updateResult = dbCol.updateMany(queryObject, new Document("$set",updateObject));
		   System.out.println("更新了"+updateResult.getModifiedCount()+"\t 行.");
		   findAll();
	   }
	   
	   public static MongoClient getConnectionWithoutParams() {                              //与数据库服务建立连接
		   if(client==null) { 
			   client = new MongoClient( "localhost" , 27017 );  
			   System.out.println("Connect to database successfully");
		   } 
		   return client;
	   }
	   
	   public static MongoDatabase getDatabase() {                                          //连接一个数据库
		   if(database==null) {
			   database=getConnectionWithoutParams().getDatabase("test");
		   }
		   return database;
	   }
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值