前言 MongoDB是一個基於分散式文件存儲的開源資料庫系統,使用C++語言編寫。它是一個介於關係資料庫和非關係資料庫之間的產品,具有類似關係資料庫的功能,但又有一些非關係資料庫的特點。MongoDB的數據模型比較鬆散,採用類似json的bson格式,可以靈活地存儲各種類型的數據 MongoDB的優 ...
前言
- MongoDB是一個基於分散式文件存儲的開源資料庫系統,使用C++語言編寫。它是一個介於關係資料庫和非關係資料庫之間的產品,具有類似關係資料庫的功能,但又有一些非關係資料庫的特點。MongoDB的數據模型比較鬆散,採用類似json的bson格式,可以靈活地存儲各種類型的數據
MongoDB的優點
-
高性能MongoDB使用C++編寫,具有高效的I/O處理能力和磁碟讀寫速度,能夠在高併發的情況下處理大量數據請求
-
可擴展性MongoDB採用分散式文件存儲,可以方便地進行水平擴展,增加伺服器數量即可提高整體性能和容量
-
易用性MongoDB提供了豐富的編程語言驅動程式,包括Java、Python、PHP、C#等,使得開發人員可以方便地使用MongoDB進行數據存儲和查詢
-
靈活性MongoDB支持的數據結構非常鬆散,可以靈活地存儲各種類型的數據,包括文檔、圖片、視頻等,滿足不同應用的需求
MongoDB的缺點
-
事務支持不足MongoDB在早期版本中並沒有完全支持事務,這使得在處理一些需要事務保證的業務時存在局限性。雖然最新版本已經支持事務,但與傳統的關係型資料庫相比,事務支持仍然不足
-
數據安全性MongoDB的數據安全性相對較低,尤其是在多節點環境中,數據的一致性難以得到保證。此外,MongoDB沒有內置的數據備份和恢復機制,需要手動進行備份和恢復操作
-
適用場景有限MongoDB適用於存儲大量數據和高併發的場景,但在一些需要精確查詢和複雜邏輯處理的場景中,MongoDB可能無法滿足需求。在這種情況下,傳統的關係型資料庫可能更為適用
MongoDB應用場景MongoDB被廣泛應用於各種場景,比較典型的應用包括
-
Web應用MongoDB適合用於Web應用的數據存儲,尤其是對於需要處理大量用戶請求和高併發的場景,例如社交網路、電商網站等
-
日誌和監控數據MongoDB可以高效地存儲大量的日誌和監控數據,支持水平擴展和高併發寫入,方便開發人員進行分析和監控
-
緩存MongoDB可以作為緩存層使用,將常用數據存儲在MongoDB中,以提高查詢效率。同時,MongoDB支持數據的過期時間和LRU緩存策略,可以有效地管理緩存生命周期
-
文檔存儲MongoDB適合存儲結構化和半結構化的文檔數據,例如郵件、文檔、圖片等,可以方便地進行讀取和搜索操作
Spring boot配置使用mongodb
新建一個spring boot工程,工程目錄如下
配置連接池,mongodb配置首碼需要加上mongodb
spring:
data:
mongodb:
uri: mongodb://localhost:27017/test
entity欄位
@Data
@Document(collection = "user") //指定要對應的文檔名(表名)
@Accessors(chain = true)
public class User {
@Id
private String id;//用戶ID
private String name; //用戶名稱
}
使用mongodb實現簡單的用戶增刪改查功能
備註:這裡為了處理數據方便,就直接返回mongodb返回的數據格式了,並且處理成字元串格式,
實際的開發業務場景需要根據項目需要去處理
使用insert方法新增
@Override
public String insertUser(User user) {
User userInfo = mongoTemplate.insert(user);
return userInfo.toString();
}
使用findAll方法查詢user集合
@Override
public String queryUser() {
List<User> userList = mongoTemplate.findAll(User.class,"user");
return userList.toString();
}
使用updateFirst方法更新查詢到的第一個用戶的信息
@Override
public String updateUser(User user) {
Update update = new Update();
update.set("name",user.getName());
mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(user.getId())),update,User.class);
User userinfo = mongoTemplate.findById(user.getId().toString(),User.class);
return userinfo.toString();
}
使用remove方法刪除用戶信息
@Override
public String deleteUser(User user) {
mongoTemplate.remove(Query.query(Criteria.where("id").is(user.getId())),User.class);
return "刪除用戶成功";
}
結尾
以上spring boot配置使用mongodb的的例子,複習了一下,需要入門的同學可以參照這個例子,源碼在這
文章個人博客地址:
創作不易,轉載請註明出處和作者。
歡迎關註公眾號:程式員布歐,不定期更新技術入門文章