Latest web development tutorials

MongoDB جافا

تكوين بيئة

إذا كنت ترغب في البرنامج في جاوة باستخدام MongoDB، كنت بحاجة للتأكد من أنك قمت بتثبيت بيئة جافا وسائق MongoDB JDBC.

الأمثلة في هذا الباب عندما مونجو 3.x أو في وقت لاحق.

يمكنك الرجوع إلى هذا الموقع التعليمي جافا لتثبيت برنامج جافا. الآن دعونا اختبار يتم تثبيت برنامج تشغيل MongoDB JDBC.


الاتصال بقاعدة البيانات

الاتصال بقاعدة البيانات، تحتاج إلى تحديد اسم قاعدة البيانات، إذا لم يكن موجودا في قاعدة البيانات المحددة، سيتم إنشاء قاعدة بيانات مونغو تلقائيا.

الاتصال بقاعدة بيانات شفرة جافا هي كما يلي:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
       // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
       
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
       System.out.println("Connect to database successfully");
        
      }catch(Exception e){
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
     }
   }
}

الآن، دعونا تجميع وتشغيل البرنامج والاتصال إلى اختبار قاعدة البيانات.

يمكنك تغيير مسار سائق MongoDB JDBC وفقا للبيئة الفعلية الخاصة بك.

هذا المثال سوف تبدأ MongoDB JDBC حزمة مونغو-جافا سائق 3.2.2.jar في الدليل المحلي:

$ javac -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC.java
$ java -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC
Connect to database successfully
Authentication: true

هذا المثال قاعدة بيانات مونجو دون الحاجة إلى اسم المستخدم وكلمة السر التوثيق. إذا كان في حاجة مونجو للتحقق من اسم المستخدم وكلمة المرور، يمكنك استخدام التعليمات البرمجية التالية:

import java.util.ArrayList;  
import java.util.List;  
import com.mongodb.MongoClient;  
import com.mongodb.MongoCredential;  
import com.mongodb.ServerAddress;  
import com.mongodb.client.MongoDatabase;  
  
public class MongoDBJDBC {  
    public static void main(String[] args){  
        try {  
            //连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址  
            //ServerAddress()两个参数分别为 服务器地址 和 端口  
            ServerAddress serverAddress = new ServerAddress("localhost",27017);  
            List<ServerAddress> addrs = new ArrayList<ServerAddress>();  
            addrs.add(serverAddress);  
              
            //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码  
            MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());  
            List<MongoCredential> credentials = new ArrayList<MongoCredential>();  
            credentials.add(credential);  
              
            //通过连接认证获取MongoDB连接  
            MongoClient mongoClient = new MongoClient(addrs,credentials);  
              
            //连接到数据库  
            MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");  
            System.out.println("Connect to database successfully");  
        } catch (Exception e) {  
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );  
        }  
    }  
} 

إنشاء مجموعة

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

جزء التعليمات البرمجية التالية:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
      // 连接到 mongodb 服务
      MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         
       
      // 连接到数据库
      MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
      System.out.println("Connect to database successfully");
      mongoDatabase.createCollection("test");
      System.out.println("集合创建成功");
        
      }catch(Exception e){
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
     }
   }
}

ترجمة وتشغيل البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:

Connect to database successfully
集合创建成功

يحصل على جمع

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

جزء التعليمات البرمجية التالية:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
       // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
       
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
       System.out.println("Connect to database successfully");
      
       MongoCollection<Document> collection = mongoDatabase.getCollection("test");
       System.out.println("集合 test 选择成功");
      }catch(Exception e){
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
     }
   }
}

ترجمة وتشغيل البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:

Connect to database successfully
集合 test 选择成功

إدراج وثيقة

يمكننا استخدام com.mongodb.client.MongoCollection الطبقة insertMany () طريقة لإدراج مستند

جزء التعليمات البرمجية التالية:

import java.util.ArrayList;
import java.util.List;
import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         //插入文档  
         /** 
         * 1. 创建文档 org.bson.Document 参数为key-value的格式 
         * 2. 创建文档集合List<Document> 
         * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document) 
         * */
         Document document = new Document("title", "MongoDB").  
         append("description", "database").  
         append("likes", 100).  
         append("by", "Fly");  
         List<Document> documents = new ArrayList<Document>();  
         documents.add(document);  
         collection.insertMany(documents);  
         System.out.println("文档插入成功");  
      }catch(Exception e){
         System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      }
   }
}

ترجمة وتشغيل البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:

Connect to database successfully
集合 test 选择成功
文档插入成功

استرداد كافة الوثائق

يمكننا استخدام طريقة com.mongodb.client.MongoCollection الدرجة البحث () للحصول على جمع جميع الوثائق.

هذا الأسلوب بإرجاع المؤشر، لذلك تحتاج إلى اجتياز المؤشر.

جزء التعليمات البرمجية التالية:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         
         //检索所有文档  
         /** 
         * 1. 获取迭代器FindIterable<Document> 
         * 2. 获取游标MongoCursor<Document> 
         * 3. 通过游标遍历检索出的文档集合 
         * */  
         FindIterable<Document> findIterable = collection.find();  
         MongoCursor<Document> mongoCursor = findIterable.iterator();  
         while(mongoCursor.hasNext()){  
            System.out.println(mongoCursor.next());  
         }  
      
      }catch(Exception e){
         System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      }
   }
}

ترجمة وتشغيل البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:

Connect to database successfully
集合 test 选择成功
Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=100, by=Fly}}

تحديث وثائق

يمكنك استخدام طريقة com.mongodb.client.MongoCollection الطبقة updateMany () لتحديث مجموعة من الوثائق.

جزء التعليمات البرمجية التالية:

import org.bson.Document;
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.model.Filters;

public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         
         //更新文档   将文档中likes=100的文档修改为likes=200   
         collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));  
         //检索查看结果  
         FindIterable<Document> findIterable = collection.find();  
         MongoCursor<Document> mongoCursor = findIterable.iterator();  
         while(mongoCursor.hasNext()){  
            System.out.println(mongoCursor.next());  
         }  
      
      }catch(Exception e){
         System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      }
   }
}

ترجمة وتشغيل البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:

Connect to database successfully
集合 test 选择成功
Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=200, by=Fly}}

إزالة الوثيقة الأولى

لحذف وثيقة في جمع أولا، تحتاج أولا إلى استخدام الطبقة com.mongodb.DBCollection findOne () طريقة للحصول على الوثيقة الأولى، ومن ثم استخدام أسلوب إزالة لحذفها.

جزء التعليمات البرمجية التالية:

import org.bson.Document;
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.model.Filters;

public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");

         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");

         //删除符合条件的第一个文档  
         collection.deleteOne(Filters.eq("likes", 200));  
         //删除所有符合条件的文档  
         collection.deleteMany (Filters.eq("likes", 200));  
         //检索查看结果  
         FindIterable<Document> findIterable = collection.find();  
         MongoCursor<Document> mongoCursor = findIterable.iterator();  
         while(mongoCursor.hasNext()){  
           System.out.println(mongoCursor.next());  
         }  
           
      }catch(Exception e){
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
     }
   }
}

ترجمة وتشغيل البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:

Connect to database successfully
集合 test 选择成功

المزيد من العمليات، والرجوع إلى: http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/

الوثيقة المرجعية: HTTP: //blog.csdn.net/ererfei/article/details/50857103