使用spring-data-mongo查詢-Aggregation


  • cid:1:privileges:groups:find


    本帖下載内容已隐藏,请登入以查看隐藏内容!
    】使用spring-data-mongo查詢-使用條件過濾數據


    本篇在說明使用 Aggregation 完成加總與平均查詢


    一、建立測試數據


    當服務器啟動時,將測試數據插入DB。

    建立類別 OrderInfo.java,用來展現訂單訊息與計算總金額

    OrderInfo.java


    建立類別 ItemInfo.java,用來展現商品名稱、金額與數量

    ItemInfo.java


    打開之前建立的 ApplicationStartup.java 檔案,

    會在Order_Info這個collection內新增五筆訂單數據,四筆的下單時間是現在的時間、一筆是2016年的訂單。

    建立後的數據如下



    二、客製 Repository 代碼


    建立類別 CalculatedInfo.java ,返回計算過後的客戶ID、年度總合、平均金額


    交接下來要新增兩個 Repository 介面,分別為 OrderInfoRepositoryCustom.java  、OrderInfoRepository.java 

    OrderInfoRepositoryCustom.java 介面如下,提供 calculate 方法


    OrderInfoRepository.java 繼承 OrderInfoRepositoryCustom.java


    新增類別  OrderInfoRepositoryImpl implements OrderInfoRepositoryCustom。

    實作calculate方法時,使用 mongoTemplate.aggregate 聚合函式

    本帖部分内容已隐藏,请登入并回覆,以查看隐藏内容!


    三、提供接口返回數據


    增加 OrderController.java 提供 API 返回JSON,

    下面的方法,透過url獲得年度變數。

    使用API測試工具呼叫接口,我們傳入2017,在下圖中看得出來排除了2016年的訂單,並分別加總平均了客戶A與客戶B的下單金額。


  • 註冊用戶

    想看~快給我看~芝麻開門


  • Lv 1

    頂一個~感謝分享~


  • Lv 1

    我也想看~快~芝麻開門


  • 註冊用戶

    1232133123123213123213


  • 註冊用戶

    很好的分享内容。。。。。。。。。


  • Lv 1

    頂一個~感謝分享~


  • 註冊用戶

    受教,感谢分享。


  • 註冊用戶

    想看~快給我看~芝麻開門


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待