前言
- MongoDB是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng),使用C++語(yǔ)言編寫(xiě)。它是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,具有類似關(guān)系數(shù)據(jù)庫(kù)的功能,但又有一些非關(guān)系數(shù)據(jù)庫(kù)的特點(diǎn)。MongoDB的數(shù)據(jù)模型比較松散,采用類似json的bson格式,可以靈活地存儲(chǔ)各種類型的數(shù)據(jù)
MongoDB的優(yōu)點(diǎn)
-
高性能MongoDB使用C++編寫(xiě),具有高效的I/O處理能力和磁盤(pán)讀寫(xiě)速度,能夠在高并發(fā)的情況下處理大量數(shù)據(jù)請(qǐng)求
-
可擴(kuò)展性MongoDB采用分布式文件存儲(chǔ),可以方便地進(jìn)行水平擴(kuò)展,增加服務(wù)器數(shù)量即可提高整體性能和容量
-
易用性MongoDB提供了豐富的編程語(yǔ)言驅(qū)動(dòng)程序,包括Java、Python、PHP、C#等,使得開(kāi)發(fā)人員可以方便地使用MongoDB進(jìn)行數(shù)據(jù)存儲(chǔ)和查詢
-
靈活性MongoDB支持的數(shù)據(jù)結(jié)構(gòu)非常松散,可以靈活地存儲(chǔ)各種類型的數(shù)據(jù),包括文檔、圖片、視頻等,滿足不同應(yīng)用的需求
MongoDB的缺點(diǎn)
-
事務(wù)支持不足MongoDB在早期版本中并沒(méi)有完全支持事務(wù),這使得在處理一些需要事務(wù)保證的業(yè)務(wù)時(shí)存在局限性。雖然最新版本已經(jīng)支持事務(wù),但與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,事務(wù)支持仍然不足
-
數(shù)據(jù)安全性MongoDB的數(shù)據(jù)安全性相對(duì)較低,尤其是在多節(jié)點(diǎn)環(huán)境中,數(shù)據(jù)的一致性難以得到保證。此外,MongoDB沒(méi)有內(nèi)置的數(shù)據(jù)備份和恢復(fù)機(jī)制,需要手動(dòng)進(jìn)行備份和恢復(fù)操作
-
適用場(chǎng)景有限MongoDB適用于存儲(chǔ)大量數(shù)據(jù)和高并發(fā)的場(chǎng)景,但在一些需要精確查詢和復(fù)雜邏輯處理的場(chǎng)景中,MongoDB可能無(wú)法滿足需求。在這種情況下,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)可能更為適用
MongoDB應(yīng)用場(chǎng)景MongoDB被廣泛應(yīng)用于各種場(chǎng)景,比較典型的應(yīng)用包括
-
Web應(yīng)用MongoDB適合用于Web應(yīng)用的數(shù)據(jù)存儲(chǔ),尤其是對(duì)于需要處理大量用戶請(qǐng)求和高并發(fā)的場(chǎng)景,例如社交網(wǎng)絡(luò)、電商網(wǎng)站等
-
日志和監(jiān)控?cái)?shù)據(jù)MongoDB可以高效地存儲(chǔ)大量的日志和監(jiān)控?cái)?shù)據(jù),支持水平擴(kuò)展和高并發(fā)寫(xiě)入,方便開(kāi)發(fā)人員進(jìn)行分析和監(jiān)控
-
緩存MongoDB可以作為緩存層使用,將常用數(shù)據(jù)存儲(chǔ)在MongoDB中,以提高查詢效率。同時(shí),MongoDB支持?jǐn)?shù)據(jù)的過(guò)期時(shí)間和LRU緩存策略,可以有效地管理緩存生命周期
-
文檔存儲(chǔ)MongoDB適合存儲(chǔ)結(jié)構(gòu)化和半結(jié)構(gòu)化的文檔數(shù)據(jù),例如郵件、文檔、圖片等,可以方便地進(jìn)行讀取和搜索操作
Spring boot配置使用mongodb
新建一個(gè)spring boot工程,工程目錄如下
配置連接池,mongodb配置前綴需要加上mongodb
spring:
data:
mongodb:
uri: mongodb://localhost:27017/test
entity字段
@Data
@Document(collection = "user") //指定要對(duì)應(yīng)的文檔名(表名)
@Accessors(chain = true)
public class User {
@Id
private String id;//用戶ID
private String name; //用戶名稱
}
使用mongodb實(shí)現(xiàn)簡(jiǎn)單的用戶增刪改查功能
備注:這里為了處理數(shù)據(jù)方便,就直接返回mongodb返回的數(shù)據(jù)格式了,并且處理成字符串格式,
實(shí)際的開(kāi)發(fā)業(yè)務(wù)場(chǎng)景需要根據(jù)項(xiàng)目需要去處理
使用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方法更新查詢到的第一個(gè)用戶的信息
@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 "刪除用戶成功";
}
結(jié)尾
以上spring boot配置使用mongodb的的例子,復(fù)習(xí)了一下,需要入門(mén)的同學(xué)可以參照這個(gè)例子,源碼在這
源碼鏈接
文章個(gè)人博客地址:
spring boot配置使用mongodb
創(chuàng)作不易,轉(zhuǎn)載請(qǐng)注明出處和作者。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-709916.html
歡迎關(guān)注公眾號(hào):程序員布?xì)W,不定期更新技術(shù)入門(mén)文章文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-709916.html
到了這里,關(guān)于2023年了,復(fù)習(xí)了一下spring boot配置使用mongodb的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!