mongoDb入門并整合spring boot
1.MongoDb簡介

MongoDb是一種非關(guān)系型數(shù)據(jù)庫,是現(xiàn)在非常火熱的noSQL。也被稱為文檔性數(shù)據(jù)庫。(可存放json,xml等格式)
mongodb與mysql命令對比 傳統(tǒng)的關(guān)系數(shù)據(jù)庫一般由數(shù)據(jù)庫(database)、表(table)、記錄(record)三個層次概念組成,
MongoDB是由數(shù)據(jù)庫(database)、集合(collection)、文檔對象(document)三個層次組成。(存儲xml,json等)
MongoDB對于關(guān)系型數(shù)據(jù)庫里的表,但是集合中沒有列、行和關(guān)系概念,這體現(xiàn)了模式自由的特點。
一條MongoDB就是一個類似json數(shù)據(jù)結(jié)構(gòu)。
特點:
存儲方式:虛擬內(nèi)存+持久化。(數(shù)據(jù)存儲在磁盤,但是充分利用了緩存,常用的數(shù)據(jù)放于內(nèi)存)
不使用固定的sql進行操作。(有固定語法)
1.MongoDb的優(yōu)點
高速。
支持json。(可存放復(fù)雜數(shù)據(jù))
可擴展分片集群。
2.MongoDb的缺點
事務(wù)關(guān)系支持薄弱。
穩(wěn)定性不足。
運維難。
不支持對表關(guān)聯(lián)查詢。
在指定id之后插入會比較慢。
3.使用場景
對大量無固定格式的數(shù)據(jù)存儲,如日志等。(充分的使用了內(nèi)存)
需要高性能。
擴展集群。
2.MongoDb的curd語法
1.安裝
首先需要安裝,可以按照這位老哥的來安裝 https://www.cnblogs.com/RushPasser/p/b060ea88677ab73fce01300d19676158.html。親試賊專業(yè)。
2.操作命令
進入C:\Program Files\MongoDB\Server\3.4\bin,雙擊mongo.exe。
show dbs --查看數(shù)據(jù)庫,假設(shè)我們有一個叫test的數(shù)據(jù)庫 use test 使用test數(shù)據(jù)庫
db.message.save({'name':'xiaobao','age':27,'class':'1-1'}) --插入message的信息。里面為json。 db.message.save({'name':'xiaobao2','age':28,'class':'2-1'}) db.message.save({'name':'xiaobao3','age':29,'class':'3-1'})
db.message.find() --查詢message db.message.find().pretty() --格式化在查詢 db.message.find() .limit(1) --查詢一條 db.message.find({"age":{"$gte":10}}) --查詢age大于10的數(shù)據(jù) db.message.find({"age":{"$lte":10}}) --查詢age小于10的數(shù)據(jù) db.message.find().sort({"age":1}) --正排序 db.message.find().sort({"age":1}) --負排序 db.message.count() --查詢條數(shù)
db.message.update({"name":"xiaobao"},{$set:{"name":"xiaowang"}}) db.message.update({"name":"xiaowang"},{"name":"laoli"}) --修改name 為laoli 其余值刪除 db.message.update({"name":"xiaobao2"},{$set:{"name":"xiaowang"}},{upsert:true}) --如果沒有 增加一條 db.message.update({"name":"xiaowang"},{$set:{"name":"xiaowang"}},{multi:true}) --修改所有數(shù)據(jù)
db.message.remove() --刪除所有 db.message.remove({'class':'1-1'}) --刪除class = 1-1的那條
3.整合spring boot
在application.properties加入mongoDb鏈接。
spring.data.mongodb.uri=mongodb://192.168.2.81:27017/test
然后使用MongoTemplate 來操作數(shù)據(jù)庫,MongoTemplate 和常用的RedisTemplate差不多,都是封裝了mongoDb方法的客戶端。
@Autowired private MongoTemplate mongotemplate; //增加 @RequestMapping(path = "/savemongo", method = RequestMethod.POST) @ResponseBody public void savecCity(@RequestBody City city) { mongotemplate.save(city);//通過一個類類型向數(shù)據(jù)庫中插入json } //查詢 @RequestMapping("/selmongo") @ResponseBody public City select(@RequestParam int id) { Query query = new Query(Criteria.where("id").is(id)); //查詢id為傳入?yún)?shù) City user = mongotemplate.findOne(query, City.class); return user; } //刪除 @RequestMapping("/delmogo") @ResponseBody public void del(@RequestParam int id) { Query query = new Query(Criteria.where("id").is(id)); //個人理解此行為查詢條件,然后在下面查找出在刪除。 mongotemplate.remove(query, City.class); } //修改 @RequestMapping(path = "/updamogo", method = RequestMethod.POST) @ResponseBody public void updateMongo(@RequestBody City city) { Query query = new Query(Criteria.where("id").is(city.getId())); Update update = new Update().set("provinceId", city.getProvinceId()).set("cityName", city.getCityName()); mongotemplate.updateFirst(query, update, City.class); }
MongoDB Spring Spring Boot
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。