MongoDB Java

在本章中,我們將學(xué)習(xí)如何設(shè)置MongoDB CLIENT。

安裝

在Java程序中開始使用MongoDB之前,需要確保在計(jì)算機(jī)上設(shè)置了MongoDB CLIENT和Java。您可以按照J(rèn)ava教程以在計(jì)算機(jī)上安裝Java?,F(xiàn)在,讓我們檢查如何設(shè)置MongoDB CLIENT。

  • 您需要下載jar mongodb-driver-3.11.2.jar and its dependency mongodb-driver-core-3.11.2.jar.。確保下載這些jar文件的最新版本。

  • 您需要將下載的jar文件包含到類路徑中。

連接到數(shù)據(jù)庫

要連接數(shù)據(jù)庫,您需要指定數(shù)據(jù)庫名稱,如果數(shù)據(jù)庫不存在,則MongoDB會(huì)自動(dòng)創(chuàng)建它。

以下是連接到數(shù)據(jù)庫的代碼片段-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class ConnectToDB { 
   
   public static void main( String args[] ) {  
      
      // 創(chuàng)建一個(gè)Mongo客戶端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
   
      // 創(chuàng)建憑證 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("已成功連接到數(shù)據(jù)庫");  
      
      // 訪問數(shù)據(jù)庫 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("Credentials ::"+ credential);     
   } 
}

現(xiàn)在,讓我們編譯并運(yùn)行以上程序,以創(chuàng)建數(shù)據(jù)庫myDb,如下所示。

$javac ConnectToDB.java $java ConnectToDB

執(zhí)行后,上述程序?qū)槟峁┮韵螺敵觥?/p>

已成功連接到數(shù)據(jù)庫 Credentials ::MongoCredential{
   mechanism = null, 
   userName = 'sampleUser', 
   source = 'myDb', 
   password = <hidden>, 
   mechanismProperties = {}}

創(chuàng)建集合

要?jiǎng)?chuàng)建集合,使用 com.mongodb.client.MongoDatabase 類的 createCollection ()方法。

以下是創(chuàng)建集合的代碼片段-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class CreatingCollection { 
   
   public static void main( String args[] ) {  
      
      // 創(chuàng)建一個(gè)Mongo客戶端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      // 創(chuàng)建憑證 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("已成功連接到數(shù)據(jù)庫");  
      
      //訪問數(shù)據(jù)庫 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      //創(chuàng)建集合 
      database.createCollection("sampleCollection"); 
      System.out.println("已成功創(chuàng)建集合"); 
   } 
}

在編譯時(shí),上述程序?yàn)槟峁┮韵陆Y(jié)果-

已成功連接到數(shù)據(jù)庫 已成功創(chuàng)建集合

獲取/選擇集合

要從數(shù)據(jù)庫中獲取/選擇一個(gè)集合,需要使用 com.mongodb.client.MongoDatabase 類的 getCollection ()方法。

以下是獲取/選擇集合的程序-

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class selectingCollection { 
   
   public static void main( String args[] ) {  
      
      // 創(chuàng)建一個(gè)Mongo客戶端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      // 創(chuàng)建憑證 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("已成功連接到數(shù)據(jù)庫");  
      
      // 訪問數(shù)據(jù)庫 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      // 創(chuàng)建集合
      System.out.println("已成功創(chuàng)建集合"); 
      // 檢索集合
      MongoCollection<Document> collection = database.getCollection("myCollection"); 
      System.out.println("已成功選擇集合myCollection"); 
   }
}

在編譯時(shí),上述程序?yàn)槟峁┮韵陆Y(jié)果-

已成功連接到數(shù)據(jù)庫 已成功創(chuàng)建集合 已成功選擇集合myCollection

插入文檔

要將文檔插入到 MongoDB 中,需要使用 com.MongoDB.client.MongoCollection 類的 insert ()方法。

以下是插入文檔的代碼片段-

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.MongoClient;
public class InsertingDocument {
	public static void main( String args[] ) {
	
	// 創(chuàng)建一個(gè)Mongo客戶端
	MongoClient mongo = new MongoClient( "localhost" , 27017 );
	
	// 訪問數(shù)據(jù)庫
	MongoDatabase database = mongo.getDatabase("myDb");
	
	// 創(chuàng)建集合
	database.createCollection("sampleCollection");
	System.out.println("已成功創(chuàng)建集合");
	
	// 檢索集合
	MongoCollection<Document> collection = database.getCollection("sampleCollection");
	System.out.println("已成功選擇集合sampleCollection");
	Document document = new Document("title", "MongoDB")
	.append("description", "database")
	.append("likes", 100)
	.append("url", "/mongodb/")
	.append("by", "(cainiaoplus.com)");
	
	//將文檔插入集合中
	collection.insertOne(document);
	System.out.println("文檔插入成功");
}

在編譯時(shí),上述程序?yàn)槟峁┮韵陆Y(jié)果-

已成功連接到數(shù)據(jù)庫 已成功選擇集合sampleCollection 文檔插入成功

檢索所有文檔

要從集合中選擇所有文檔,請使用com.mongodb.client.MongoCollection 的classfind()方法。此方法返回一個(gè)游標(biāo),因此您需要迭代此游標(biāo)。

以下是選擇所有文檔的程序-

import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
public class RetrievingAllDocuments {
	public static void main( String args[] ) {
	
		// 創(chuàng)建一個(gè)Mongo客戶端
		MongoClient mongo = new MongoClient( "localhost" , 27017 );
		
		// 創(chuàng)建憑證
		MongoCredential credential;
		credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
		System.out.println("已成功連接到數(shù)據(jù)庫");
		
		// 訪問數(shù)據(jù)庫
		MongoDatabase database = mongo.getDatabase("myDb");
		
		// 檢索集合
		MongoCollection<Document> collection = database.getCollection("sampleCollection");
		System.out.println("已成功選擇集合sampleCollection");
		Document document1 = new Document("title", "MongoDB")
		.append("description", "database")
		.append("likes", 100)
		.append("url", "/mongodb/")
		.append("by", "(cainiaoplus.com)");
		Document document2 = new Document("title", "RethinkDB")
		.append("description", "database")
		.append("likes", 200)
		.append("url", "/rethinkdb/")
		.append("by", "(cainiaoplus.com)");
		List<Document> list = new ArrayList<Document>();
		list.add(document1);
		list.add(document2);
		collection.insertMany(list);
		// 獲取可迭代對象
		FindIterable<Document> iterDoc = collection.find();
		int i = 1;
		// 獲取迭代器
		Iterator it = iterDoc.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
			i++;
		}
	}
}

在編譯時(shí),上述程序?yàn)槟峁┮韵陆Y(jié)果-

已成功連接到數(shù)據(jù)庫 已成功選擇集合sampleCollection{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=/mongodb/, by=(cainiaoplus.com)}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=/rethinkdb/, by=(cainiaoplus.com)}}

更新文檔

要從集合中更新文檔,請使用com.mongodb.client.MongoCollection的classupdateOne()方法。

以下是選擇第一個(gè)文檔的程序-

import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.mongodb.client.model.Filters; 
import com.mongodb.client.model.Updates; 
import java.util.Iterator; 
import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class UpdatingDocuments { 
   
   public static void main( String args[] ) {  
      
      // 創(chuàng)建一個(gè)Mongo客戶端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      // 創(chuàng)建憑證 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("已成功連接到數(shù)據(jù)庫");  
      
      // 訪問數(shù)據(jù)庫 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      // 檢索集合 
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("已成功選擇集合myCollection"); 
      collection.updateOne(Filters.eq("title", 1), Updates.set("likes", 150));       
      System.out.println("文檔更新成功...");  
      
      // 更新后檢索文檔 
      // 獲取可迭代對象
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 
      // 獲取迭代器 
      Iterator it = iterDoc.iterator(); 
      while (it.hasNext()) {  
         System.out.println(it.next());  
         i++; 
      }     
   }  
}

在編譯時(shí),上述程序?yàn)槟峁┮韵陆Y(jié)果-

已成功連接到數(shù)據(jù)庫 已成功選擇集合myCollection 文檔更新成功...Document{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=/mongodb/, by=(cainiaoplus.com)}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=/rethinkdb/, by=(cainiaoplus.com)}}

刪除文檔

要從集合中刪除文檔,您需要使用類com.mongodb.client.MongoCollectiondeleteOne()方法。

以下是刪除文檔的程序-

import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.mongodb.client.model.Filters;  
import java.util.Iterator; 
import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class DeletingDocuments { 
   
   public static void main( String args[] ) {  
   
      // 創(chuàng)建一個(gè)Mongo客戶端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 );
      
      // 創(chuàng)建憑證 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("已成功連接到數(shù)據(jù)庫");  
      
      // 訪問數(shù)據(jù)庫 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      // 檢索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("已成功選擇集合sampleCollection"); 
      // 刪除文件 
      collection.deleteOne(Filters.eq("title", "MongoDB")); 
      System.out.println("文檔刪除成功...");  
      
      // 更新后檢索文檔 
      // 獲取可迭代對象 
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 
      // 獲取迭代器 
      Iterator it = iterDoc.iterator(); 
      while (it.hasNext()) {  
         System.out.println(it.next());  
         i++; 
      }       
   } 
}

在編譯時(shí),上述程序?yàn)槟峁┮韵陆Y(jié)果-

已成功連接到數(shù)據(jù)庫 已成功選擇集合sampleCollection 文檔刪除成功...Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=/rethinkdb/, by=(cainiaoplus.com)}}

刪除集合

要從數(shù)據(jù)庫中刪除集合,您需要使用類com.mongodb.client.MongoCollectiondrop()方法。

以下是刪除集合的程序-

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase;  
import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class DropingCollection { 
   
   public static void main( String args[] ) {  
      // 創(chuàng)建一個(gè)Mongo客戶端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
      // 創(chuàng)建憑證 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("已成功連接到數(shù)據(jù)庫");  
      
      // 訪問數(shù)據(jù)庫 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      // 創(chuàng)建集合
      System.out.println("已成功創(chuàng)建集合"); 
      // 檢索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      // 刪除集合 
      collection.drop(); 
      System.out.println("已成功刪除集合");
   } 
}

在編譯時(shí),上述程序?yàn)槟峁┮韵陆Y(jié)果-

已成功連接到數(shù)據(jù)庫 Collection sampleCollection selected successfully 已成功刪除集合

列出所有集合

要列出數(shù)據(jù)庫中的所有集合,您需要使用類com.mongodb.client.MongoDatabase的listCollectionNames()方法

以下是列出數(shù)據(jù)庫的所有集合的程序-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class ListOfCollection { 
   
   public static void main( String args[] ) {  
      
      // 創(chuàng)建一個(gè)Mongo客戶端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
      // 創(chuàng)建憑證 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("已成功連接到數(shù)據(jù)庫");  
      
      // 訪問數(shù)據(jù)庫 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("已成功創(chuàng)建集合"); 
      for (String name : database.listCollectionNames()) { 
         System.out.println(name); 
      } 
   }
}

在編譯時(shí),上述程序?yàn)槟峁┮韵陆Y(jié)果-

已成功連接到數(shù)據(jù)庫 已成功創(chuàng)建集合 myCollection myCollection1 myCollection5

其余的 MongoDB 方法 save ()、 limit ()、 skip ()、 sort ()等的工作方式與后續(xù)教程中解釋的相同。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清