Latest web development tutorials
×

MongoDB หลักสูตร

MongoDB หลักสูตร NoSQL แนะนำโดยย่อ MongoDB แนะนำโดยย่อ Window ติดตั้ง MongoDB Linux ติดตั้ง MongoDB MongoDB การแปลความหมายของแนวคิด MongoDB สัมพันธ์ MongoDB การสร้างฐานข้อมูล MongoDB ลบฐานข้อมูล MongoDB แทรกเอกสาร MongoDB การปรับปรุงเอกสาร MongoDB การลบเอกสาร MongoDB เอกสารแบบสอบถาม MongoDB ผู้ประกอบการที่มีเงื่อนไข MongoDB $type ผู้ประกอบการ MongoDB Limit & Skip MongoDB ลำดับ MongoDB ดัชนี MongoDB การรวมตัว MongoDB สำเนา MongoDB ชิ้น MongoDB สำรองและกู้คืน MongoDB หน้าจอ MongoDB Java MongoDB PHP กระจาย MongoDB PHP MongoDB PHP7

MongoDB การสอนที่ทันสมัย

MongoDB ความสัมพันธ์ MongoDB อ้างอิงฐานข้อมูล MongoDB ครอบคลุมแบบสอบถามดัชนี MongoDB การวิเคราะห์แบบสอบถาม MongoDB การดำเนินงานของอะตอม MongoDB การจัดทำดัชนีขั้นสูง MongoDB ข้อ จำกัด ของดัชนี MongoDB ObjectId MongoDB Map Reduce MongoDB ค้นหาข้อความเต็ม MongoDB นิพจน์ปกติ MongoDB เครื่องมือการจัดการ MongoDB GridFS MongoDB ชุดถาวร MongoDB การเจริญเติบโตอัตโนมัติ

MongoDB Java

การกำหนดค่าสภาพแวดล้อม

หากคุณต้องการโปรแกรมในภาษาจาวาโดยใช้ MongoDB คุณจะต้องให้แน่ใจว่าคุณได้ติดตั้งระบบ Java และคนขับรถ MongoDB JDBC

ตัวอย่างในส่วนนี้เมื่อ Mongo 3.x หรือในภายหลัง

คุณสามารถดูได้ที่เว็บไซต์นี้ กวดวิชา Java เพื่อติดตั้งโปรแกรม Java ตอนนี้ขอทดสอบไดรเวอร์ JDBC MongoDB ของคุณมีการติดตั้ง

  • ก่อนอื่นคุณต้องดาวน์โหลดแพคเกจขวด Mongo ดาวน์โหลดที่อยู่: http://mongodb.github.io/mongo-java-driver/ ให้แน่ใจว่าได้ดาวน์โหลดรุ่นล่าสุด

  • คุณจะต้อง Mongo-Java ไดรเวอร์ 3.2.2.jar (หารุ่นที่เหมาะสม) รวมอยู่ใน classpath ของคุณ .
  • ประเทศ MongoDB ขับขวดดาวน์โหลด: http://central.maven.org/maven2/org/mongodb/mongo-java-driver/

เชื่อมต่อกับฐานข้อมูล

เชื่อมต่อกับฐานข้อมูลที่คุณจำเป็นต้องระบุชื่อฐานข้อมูลหากฐานข้อมูลที่ระบุไม่ได้อยู่ในฐานข้อมูล Mongo จะถูกสร้างขึ้นโดยอัตโนมัติ

การเชื่อมต่อกับฐานข้อมูลรหัส Java เป็นดังนี้

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 แพคเกจ Mongo-Java ไดรเวอร์ 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

ตัวอย่างนี้ฐานข้อมูล Mongo โดยไม่ต้องมีชื่อผู้ใช้และรหัสผ่านการตรวจสอบ หาก Mongo คุณจำเป็นต้องตรวจสอบชื่อผู้ใช้และรหัสผ่านที่คุณสามารถใช้รหัสต่อไปนี้:

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

นำเอกสารแรก

ในการลบเอกสารในคอลเลกชันแรกที่แรกที่คุณจำเป็นต้องใช้ findOne ระดับ com.mongodb.DBCollection () วิธีการที่จะได้รับเอกสารก่อนแล้วจึงใช้วิธีการลบเพื่อลบ

ส่วนรหัสต่อไปนี้:

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