spring boot整合mongodb使用簡單介紹 spring整合mongo使用簡單介紹 spring整合mongoDB使用簡單介紹

最近在項目中使用到了mongodb,第一次用,各種百度加問大佬,簡單記錄下自己的理解,一是希望能幫助到同樣要學習mongo的同學,另外就是以後可以看一下複習複習。

簡單理解

第一步導入mongo的依賴

		<!--mongodb-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-mongodb</artifactId>
		</dependency>

這裏沒有引入具體的版本 ,因爲你是用spring boot的某一個版本後,會自動給你匹配對應的版本。

然後配置數據庫地址,spring boot一般都用yml 簡單貼下配置

spring:
  data:
    mongodb:
      uri: mongodb://數據庫鏈接:端口號/數據庫名(類似mysql的數據庫名)

這兩部做完之後,我們就還可以愉快的進行增刪改查操作了。
上面的依賴給我們提供了兩個類供我們進行增刪改查操作,
一個是MongoTemplate,另一個是MongoRepository
單就查詢插入的話 我是比較喜歡MongoRepository的,但也是新手不知道具體哪一個效率比較好。

後者類似spring data jpa,是spring封裝的針對查詢的一個類,簡單介紹下使用方法。
下面這個是spring data jpa的步完全相同,但也有類似的地方,講的是非常好的

https://www.cnblogs.com/cmfwm/p/8109433.html

MongoTemplate

首先介紹下MongoTemplate的使用方法,
在這裏插入圖片描述

查詢

可以看到我們要首先創建條件,通過query對象,更新的話創建update對象,簡單列一個例子

排序查詢,先 最下面的 include 選擇某字段輸出

     	Sort sort = new Sort(Sort.Direction.DESC,"createTime");
//        Query query = new Query(Criteria.where("type").is("site")).with(sort);
        Query query = new Query().with(sort);
        query.fields().include("type").include("number");

在這裏插入圖片描述

更新

更新可以看我下面寫的一篇,這裏介紹了一個刪除操作,使用到了update方法,參考一下,基本步驟差不多
https://blog.csdn.net/wonder_dog/article/details/82682099

MongoTemplate有一個upsert方法,假使數據庫有執行更新操作,沒有的話就執行插入操作

刪除

刪除一般都是邏輯刪除,參考上面更新操作。真正刪除的話應該就是創建query對象,然後使用remove方法

查出數據後 刪除指定的字段 使用unset
set是更新指定字段 set設置的原本不存在的字段加入後 字段不是數組
總結 set 有值更新 無值 添加
addToSet(string ,object) addToSet 添加一個沒有不存在的字段 字段是數組類型,再次添加變成數組存儲,原來存在的字段固定不是數組的 再添加會報錯

addToSet(string) 慎用 會清掉除id外的其他數據

pull 刪除存儲的 非類中類的 數組的 指定的字段 假使類內另一個類的數組裏的數據 不可直接使用 例子 前面添加到 object.mobile 字段多個數據 可以根據下面樣式進行刪除

		 Sort sort = new Sort(Sort.Direction.DESC,"createTime");
        Query query = new Query(Criteria.where("number").is("861478762582192423")).with(sort);
        Update update = new Update();
        update.set("object.mobile","123");
        update.addToSet("object.mobile","123");
//        update.unset("object.contractCode");
//        update.addToSet("cat");
//        update.addToSet("cat",456);
//        update.pull("object.mobile","123");

        mongoTemplate.upsert(query,update,FaeMongo.class);

添加

一種是使用上面說的upsert方法,另一種就是 傳統的insert方法了,傳入你的實體類就好,前提條件,你的實體類使用註解對應了你數據庫裏的表, 如下

@Document(collection="表名")

上面是MongoTemplate的使用方法,下面再介紹下MongoRepository的使用

MongoRepository

導入上面的依賴後就可以使用這個類了,自己建一個接口繼承這個方法,類似下面這樣
在這裏插入圖片描述
然後,再service注入這個方法,就可以進行查詢了
原來簡單寫了個分頁查詢的方法,可以參考下
https://blog.csdn.net/wonder_dog/article/details/82319216
其他根據某一字段查詢的話,就可以再我們創建的接口那加一個方法就好了,類似上面分享的spring data jpa裏面寫的,
舉個例子,你想根據id查詢,你可以創建一個方法類似下面

實體類  findById(參數)

其餘類似加入有name屬性 ,就findByName(參數);
個人感覺這個方法還很好用的,這個也有好多分享的,下面貼幾個鏈接,大家可以去看下
搜索的話搜索 mongoRepository就會有好多條件查詢的

學習鏈接

https://blog.csdn.net/qq_38288606/article/details/78673528

分頁查詢
https://www.cnblogs.com/wslook/p/9275861.html

or查詢
https://blog.csdn.net/tjbsl/article/details/80620303

分頁查詢整理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章