MongoDB Java

安装

在Java程序中开始使用MongoDB之前,需要确保在计算机上设置了MongoDB CLIENT和Java。您可以按照Java教程以在计算机上安装Java。现在,让我们检查如何设置MongoDB CLIENT。

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

  • 您需要将下载的jar文件包含到类路径中。

连接到数据库

要连接数据库,您需要指定数据库名称,如果数据库不存在,则MongoDB会自动创建它。

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class ConnectToDB { 
   
   public static void main( String args[] ) {  
      
      // 创建一个Mongo客户端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
   
      // 创建凭证 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); 
      System.out.println("已成功连接到数据库");  
      
      // 访问数据库 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("Credentials ::"+ credential);     
   } 
}

创建集合

要创建集合,使用 com.mongodb.client.MongoDatabase 类的 createCollection ()方法。

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class CreatingCollection { 
   
   public static void main( String args[] ) {  
      
      // 创建一个Mongo客户端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      // 创建凭证 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); 
      System.out.println("已成功连接到数据库");  
      
      //访问数据库 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      //创建集合 
      database.createCollection("sampleCollection"); 
      System.out.println("已成功创建集合"); 
   } 
}

获取/选择集合

要从数据库中获取/选择一个集合,需要使用 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[] ) {  
      
      // 创建一个Mongo客户端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      // 创建凭证 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); 
      System.out.println("已成功连接到数据库");  
      
      // 访问数据库 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      // 创建集合
      System.out.println("已成功创建集合"); 
      // 检索集合
      MongoCollection<Document> collection = database.getCollection("myCollection"); 
      System.out.println("已成功选择集合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[] ) {

	// 创建一个Mongo客户端
	MongoClient mongo = new MongoClient( "localhost" , 27017 );

	// 访问数据库
	MongoDatabase database = mongo.getDatabase("myDb");

	// 创建集合
	database.createCollection("sampleCollection");
	System.out.println("已成功创建集合");

	// 检索集合
	MongoCollection<Document> collection = database.getCollection("sampleCollection");
	System.out.println("已成功选择集合sampleCollection");
	Document document = new Document("title", "MongoDB")
	.append("description", "database")
	.append("likes", 100)
	.append("url", "https://www.feishuai.vipmongodb/")
	.append("by", "feishuai.vip");

	//将文档插入集合中
	collection.insertOne(document);
	System.out.println("文档插入成功");
}

检索所有文档

要从集合中选择所有文档,请使用com.mongodb.client.MongoCollection的classfind()方法。此方法返回一个游标,因此您需要迭代此游标。

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[] ) {

		// 创建一个Mongo客户端
		MongoClient mongo = new MongoClient( "localhost" , 27017 );

		// 创建凭证
		MongoCredential credential;
		credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
		System.out.println("已成功连接到数据库");

		// 访问数据库
		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", "https://www.feishuai.vipmongodb/")
		.append("by", "feishuai.vip");
		Document document2 = new Document("title", "RethinkDB")
		.append("description", "database")
		.append("likes", 200)
		.append("url", "https://www.feishuai.viprethinkdb/")
		.append("by", "feishuai.vip");
		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++;
		}
	}
}

更新文档

要从集合中更新文档,请使用com.mongodb.client.MongoCollection的classupdateOne()方法

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[] ) {  
      
      // 创建一个Mongo客户端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      // 创建凭证 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); 
      System.out.println("已成功连接到数据库");  
      
      // 访问数据库 
      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++; 
      }     
   }  
}

删除文档

要从集合中删除文档,您需要使用类com.mongodb.client.MongoCollection的deleteOne()方法。

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[] ) {  
   
      // 创建一个Mongo客户端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 );
      
      // 创建凭证 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); 
      System.out.println("已成功连接到数据库");  
      
      // 访问数据库 
      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++; 
      }       
   } 
}

删除集合

要从数据库中删除集合,您需要使用类com.mongodb.client.MongoCollection的drop()方法。

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[] ) {  
      // 创建一个Mongo客户端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
      // 创建凭证 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); 
      System.out.println("已成功连接到数据库");  
      
      // 访问数据库 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      // 创建集合
      System.out.println("已成功创建集合"); 
      // 检索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      // 删除集合 
      collection.drop(); 
      System.out.println("已成功删除集合");
   } 
}

列出所有集合

要列出数据库中的所有集合,您需要使用类com.mongodb.client.MongoDatabase的istCollectionNames()方法。

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class ListOfCollection { 
   
   public static void main( String args[] ) {  
      
      // 创建一个Mongo客户端 
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
      // 创建凭证 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); 
      System.out.println("已成功连接到数据库");  
      
      // 访问数据库 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("已成功创建集合"); 
      for (String name : database.listCollectionNames()) { 
         System.out.println(name); 
      } 
   }
}

其余的 MongoDB 方法 save ()、 limit ()、 skip ()、 sort ()等的工作方式与后续教程中解释的相同。

编程笔记 » MongoDB Java