English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MongoDB Java

في هذا الفصل، سنتعلم كيفية إعداد MongoDB CLIENT.

التثبيت

قبل البدء في استخدام MongoDB في برنامج Java، يجب التأكد من إعداد MongoDB CLIENT وJava على الحاسوب. يمكنك اتباع التعليمات الخاصة بـ Java لتثبيت Java على الحاسوب. الآن، دعونا نتحقق من كيفية إعداد MongoDB CLIENT.

  • تحتاج إلى تنزيل jar mongodb-driver-3.11.2.jar و مكتبة اعتمادها 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);     
   } 
}

الآن، دعونا نقوم بترميز وتشغيل البرنامج المذكور أعلاه لإنشاء قاعدة البيانات myDb، كما يلي.

$javac ConnectToDB.java $java ConnectToDB

بعد تنفيذ البرنامج المذكور أعلاه، سيقدم لك البرنامج التالي.

تم الاتصال بنجاح بالقاعدة البيانات Credentials ::MongoCredential{
   mechanism = null, 
   userName = 'sampleUser', 
   source = 'myDb', 
   password = <مخفي>, 
   mechanismProperties = {}

إنشاء المجموعة

لإنشاء مجموعة، استخدم طريقة createCollection () من فئة com.mongodb.client.MongoDatabase.

إليك قطعة من الكود لإنشاء المجموعة -

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("تم إنشاء مجموعة"); 
   } 
}

عند التجميع، يقدم لك البرنامج التالي ما يلي-

تم الاتصال بنجاح بالقاعدة البيانات تم إنشاء المجموعة بنجاح

الحصول/اختيار المجموعة

للحصول/اختيار مجموعة من قاعدة البيانات يجب استخدام طريقة getCollection () من فئة com.mongodb.client.MongoDatabase.

إليك برنامج الحصول/اختيار المجموعة -

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 بنجاح"); 
   }
}

عند التجميع، يقدم لك البرنامج التالي ما يلي-

تم الاتصال بنجاح بالقاعدة البيانات تم إنشاء المجموعة بنجاح تم اختيار المجموعة myCollection بنجاح

إدراج المستند

لإدراج المستند في MongoDB، يجب استخدام طريقة insert () من فئة com.MongoDB.client.MongoCollection.

以下是插入文档的代码片段-

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", "http://ar.oldtoolbag.com/mongodb/")
	.append("by", "oldtoolbag.com");
	//将文档插入集合中
	collection.insertOne(document);
	System.out.println("文档插入成功");
}

عند التجميع، يقدم لك البرنامج التالي ما يلي-

已成功连接到数据库 已成功选择集合sampleCollection 文档插入成功

检索所有文档

要从集合中选择所有文档,请使用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", "http://ar.oldtoolbag.com/mongodb/")
		.append("by", "oldtoolbag.com");
		Document document2 = new Document("title", "RethinkDB")
		.append("description", "database")
		.append("likes", 200)
		.append("url", "http://ar.oldtoolbag.com/rethinkdb/")
		.append("by", "oldtoolbag.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++;
		}
	}
}

عند التجميع، يقدم لك البرنامج التالي ما يلي-

تم الاتصال بنجاح بالقاعدة البيانات تم اختيار مجموعة sampleCollection{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://ar.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ar.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}

تحديث الوثيقة

لتحديث وثيقة من المجموعة، استخدمclass com.mongodb.client.MongoCollectionupdateOne()方法

هذا هو برنامج اختيار الوثيقة الأولى -

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++; 
      }     
   }  
}

عند التجميع، يقدم لك البرنامج التالي ما يلي-

تم الاتصال بنجاح بالقاعدة البيانات تم اختيار مجموعة myCollection بنجاح...Document{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://ar.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ar.oldtoolbag.com/rethinkdb/, by=oldtoolbag.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[]) {  
   
      // 创建一个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++; 
      }       
   } 
}

عند التجميع، يقدم لك البرنامج التالي ما يلي-

تم الاتصال بنجاح بالقاعدة البيانات  تم اختيار مجموعة sampleCollection بنجاح  تم حذف المستند بنجاح...Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ar.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}

删除集合

要从数据库中删除集合,您需要使用类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[]) {  
      // 创建一个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("已成功删除集合");
   } 
}

عند التجميع، يقدم لك البرنامج التالي ما يلي-

已成功连接到数据库 Collection sampleCollection selected successfully 已成功删除集合

列出所有集合

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

以下是列出数据库的所有集合的程序-

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); 
      } 
   }
}

عند التجميع، يقدم لك البرنامج التالي ما يلي-

تم الاتصال بنجاح بالقاعدة البيانات تم إنشاء مجموعة myCollection myCollection1 myCollection5

عمليةMongoDBothةsave ()، limit ()، skip ()، sort ()، وغيرها من الطرق الموضحة في الدروس اللاحقة.