五分鐘帶你玩轉mongodb(一)mongoDb簡介和整合spring boot
MongoDb

MongoDb是一種非關系型數據庫,是現在非常火熱的noSQL。也被稱為文檔性數據庫。(可存放json,xml等格式)
mongodb與mysql命令對比 傳統的關系數據庫一般由數據庫(database)、表(table)、記錄(record)三個層次概念組成,
MongoDB是由數據庫(database)、集合(collection)、文檔對象(document)三個層次組成。(存儲xml,json等)
MongoDB對于關系型數據庫里的表,但是集合中沒有列、行和關系概念,這體現了模式自由的特點。
一條MongoDB就是一個類似json數據結構。
特點:
1.存儲方式:虛擬內存+持久化。(數據存儲在磁盤,但是充分利用了緩存,常用的數據放于內存)
2.不使用固定的sql進行操作。(有固定語法)
MongoDb的優點
1.高速。
2.支持json。(可存放復雜數據)
3.可擴展分片集群。
MongoDb的缺點
1.事務關系支持薄弱。
2.穩定性不足。
3.運維難。
4.不支持對表關聯查詢。
5.在指定id之后插入會比較慢。
使用場景
1.對大量無固定格式的數據存儲,如日志等。(充分的使用了內存)
2.需要高性能。
3.擴展集群。
對MongoDb增刪查改
首先需要安裝,可以按照這位老哥的來安裝 https://www.cnblogs.com/RushPasser/p/b060ea88677ab73fce01300d19676158.html。親試賊專業。
1.進入C:\Program Files\MongoDB\Server.4\bin,雙擊mongo.exe。
show dbs --查看數據庫,假設我們有一個叫test的數據庫 use test 使用test數據庫
1
2
插入
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'})
1
2
3
查詢
db.message.find() --查詢message db.message.find().pretty() --格式化在查詢 db.message.find() .limit(1) --查詢一條 db.message.find({"age":{"$gte":10}}) --查詢age大于10的數據 db.message.find({"age":{"$lte":10}}) --查詢age小于10的數據 db.message.find().sort({"age":1}) --正排序 db.message.find().sort({"age":1}) --負排序 db.message.count() --查詢條數
1
2
3
4
5
6
7
8
9
修改
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}) --修改所有數據
1
2
3
4
5
6
刪除
db.message.remove() --刪除所有 db.message.remove({'class':'1-1'}) --刪除class = 1-1的那條
1
2
spring boot整合mongodb
然后在application.properties加入mongoDb鏈接。
spring.data.mongodb.uri=mongodb://192.168.2.81:27017/test
1
然后使用MongoTemplate 來操作數據庫,MongoTemplate 和常用的RedisTemplate差不多,都是封裝了mongoDb方法的客戶端。
@Autowired private MongoTemplate mongotemplate; //增加 @RequestMapping(path = "/savemongo", method = RequestMethod.POST) @ResponseBody public void savecCity(@RequestBody City city) { mongotemplate.save(city);//通過一個類類型向數據庫中插入json } //查詢 @RequestMapping("/selmongo") @ResponseBody public City select(@RequestParam int id) { Query query = new Query(Criteria.where("id").is(id)); //查詢id為傳入參數 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); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
MongoDB Spring Spring Boot
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。