1. 程式人生 > 資料庫 >mongodb driver使用程式碼詳解

mongodb driver使用程式碼詳解

MongoDB 是一個基於分散式檔案儲存的資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴充套件的高效能資料儲存解決方案。

MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。

0 前言

全是乾貨的技術殿堂

文章收錄在我的 GitHub 倉庫,歡迎Star/fork:

Java-Interview-Tutorial

https://github.com/Wasabi1234/Java-Interview-Tutorial

mongodb-driver是mongo官方推出的java連線mongoDB的驅動包,相當於JDBC驅動。我們現在來使用mongodb-driver

完成對Mongodb的操作。

1 環境準備

建立工程,並新增以下依賴:

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

2 使用mongodb-driver

2.1 查詢所有

@Test 
public void test1() { 
 //建立連線 
 MongoClient client = new MongoClient("192.168.200.128");
 //開啟資料庫 
 MongoDatabase commentdb = client.getDatabase("commentdb"); 
 //獲取集合 
 MongoCollection<Document> comment = commentdb.getCollection("comment"); 
 //查詢 
 FindIterable<Document> documents = comment.find(); 
 //查詢記錄獲取文件集合 
 for (Document document : documents) { 
 System.out.println("_id:" + document.get("_id")); 
 System.out.println("內容:" + document.get("content")); 
 System.out.println("使用者ID:" + document.get("userid")); 
 System.out.println("點贊數:" + document.get("thumbup")); }
 //關閉連線 
 client.close(); 
 }
 } 

2.2 根據_id查詢

每次使用都要用到MongoCollection,進行抽取:

private MongoClient client; 
private MongoCollection<Document> comment; 
@Before 
public void init() { 
 //建立連線 
 client = new MongoClient("192.168.200.128"); 
 //開啟資料庫 
 MongoDatabase commentdb = client.getDatabase("commentdb"); 
 //獲取集合 
 comment = commentdb.getCollection("comment"); 
}
@After 
public void after() { 
 client.close(); 
}
@Test public void test2() { 
 //查詢 
 FindIterable<Document> documents = comment.find(new BasicDBObject("_id","1")); 
 //查詢記錄獲取文件集合 
 for (Document document : documents) { 
 System.out.println("_id:" + document.get("_id")); 
 System.out.println("內容:" + document.get("content")); 
 System.out.println("使用者ID:" + document.get("userid")); 
 System.out.println("點贊數:" + document.get("thumbup")); 
 } 
}

2.3 新增

@Test public void test3() { 
 Map<String,Object> map = new HashMap(); 
 map.put("_id","6"); 
 map.put("content","很棒!"); 
 map.put("userid","9999"); 
 map.put("thumbup",123); 
 Document document = new Document(map); 
 comment.insertOne(document); 
}

2.4 修改

@Test public void test4() { 
 //修改的條件 
 Bson filter = new BasicDBObject("_id","6"); 
 //修改的資料 
 Bson update = new BasicDBObject("$set",new Document("userid","8888"));
 comment.updateOne(filter,update); 
}

2.5 刪除

@Test public void test5() { 
 //刪除的條件 
 Bson filter = new BasicDBObject("_id","6"); 
 comment.deleteOne(filter); 
}

MongoDB優勢與劣勢

優勢:

1、在適量級的記憶體的MongoDB的效能是非常迅速的,它將熱資料儲存在實體記憶體中,使得熱資料的讀寫變得十分快。
2、MongoDB的高可用和叢集架構擁有十分高的擴充套件性。
3、在副本集中,當主庫遇到問題,無法繼續提供服務的時候,副本集將選舉一個新的主庫繼續提供服務。
4、MongoDB的Bson和JSon格式的資料十分適合文件格式的儲存與查詢。

劣勢:

1、 不支援事務操作。MongoDB本身沒有自帶事務機制,若需要在MongoDB中實現事務機制,需通過一個額外的表,從邏輯上自行實現事務。
2、 應用經驗少,由於NoSQL興起時間短,應用經驗相比關係型資料庫較少。
3、MongoDB佔用空間過大。

總結

到此這篇關於mongodb driver使用程式碼詳解的文章就介紹到這了,更多相關mongodb driver使用 內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!