mongoDB在java上面的應用


1、實際應用過程中肯定不會直接通過Linux的方式來連接和使用數據庫,而是通過其他驅動的方式來使用mongoDB

2、本教程只針對於Java來做操作,主要是模擬mongoDB數據庫在開發過程中的應用

3、在官網下載對應的jar包,來做mongoDB的驅動支持,當然也可以利用pom.xml文件自己下載

  jar下載地址:https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.4.2/

  這個是3.4.2版本的,有需要可以下載其他版本

  

也可以在pom.xml文件中加入

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.4.2</version>
    </dependency>
</dependencies>

4、連接數據庫,連接數據庫的方式有兩種。一種是沒有用戶名密碼,另外一種是有的

  1)沒有密碼

  public static void main(String[] args) {
        try{
            // 連接到 mongodb 服務
            MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
            // 連接到數據庫
            MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  
            System.out.println("Connect to database successfully");                
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
          
    }

  2)有密碼

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

5、創建集合

    public static void main(String[] args) {
        try{   
            // 連接到 mongodb 服務
            MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); 
            // 連接到數據庫
            MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  
            System.out.println("Connect to database successfully");
            mongoDatabase.createCollection("test");
            System.out.println("集合創建成功");        
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }

6、獲取集合

    public static void main(String[] args) {
        try{   
            // 連接到 mongodb 服務
            MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
            // 連接到數據庫
            MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  
            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() );
        }
    }

7、插入文檔(BSON格式)

    public static void main(String[] args) {
        try{   
            MongoClient mongoClient = new MongoClient( "localhost" , 27017 );  // 連接到 mongodb 服務
            MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  // 連接到數據庫
            System.out.println("Connect to database successfully");
            MongoCollection<Document> collection = mongoDatabase.getCollection("test"); //獲取集合
            System.out.println("集合 test 選擇成功"); 
            Document document = new Document("title", "MongoDB").append("description", "database").append("likes", 100);  //新建文檔
            List<Document> documents = new ArrayList<Document>();  
            documents.add(document);  
            collection.insertMany(documents);  //添加文檔(對應的BSON數據)
            System.out.println("文檔插入成功");  
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }

8、檢索文檔,查找對用數據

public static void main(String[] args) {
    try{   
        MongoClient mongoClient = new MongoClient( "localhost" , 27017 );  // 連接到 mongodb 服務
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  // 連接到數據庫
        System.out.println("Connect to database successfully");
        MongoCollection<Document> collection = mongoDatabase.getCollection("test"); //獲取集合
        System.out.println("集合 test 選擇成功"); 
        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() );
    }
}

9、更新文檔數據

public static void main( String args[] ){
    try{   
        MongoClient mongoClient = new MongoClient( "localhost" , 27017 );  // 連接到 mongodb 服務
        MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  // 連接到數據庫
        System.out.println("Connect to database successfully");
        MongoCollection<Document> collection = mongoDatabase.getCollection("test");
        System.out.println("集合 test 選擇成功");
        collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));  //更新文檔 將文檔中likes=100的文檔修改為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() );
    }
}

10、刪除文檔

public static void main( String args[] ){
    try{   
        MongoClient mongoClient = new MongoClient( "localhost" , 27017 );  // 連接到 mongodb 服務
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  // 連接到數據庫
        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() );
    }
}

11、基本的操作就是這樣,在實際應用過程中,可以通過一定的數據格式要求來做一些修改和添加,數據的應用可以通過Document來具體獲取獲取進行處理

12、為了方便數據庫的管理和學習也可以參考其他的學習方法,來實現對應的結果

13、推薦一個學習mongoDB的網站,適合新手!老鳥略過。。。

  網址:http://www.runoob.com/mongodb/mongodb-tutorial.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM