日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

mongotemplate 查list_mongoTemplate.aggregate()聚合查询 时间

發(fā)布時(shí)間:2025/4/16 编程问答 79 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mongotemplate 查list_mongoTemplate.aggregate()聚合查询 时间 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、概述

1.?聚合的表達(dá)式

MongoDB中聚合(aggregate)主要用于處理數(shù)據(jù)(諸如統(tǒng)計(jì)平均值,求和等),并返回計(jì)算后的數(shù)據(jù)結(jié)果。有點(diǎn)類(lèi)似sql語(yǔ)句中的 count(*)。

下表展示了一些聚合的表達(dá)式:

表達(dá)式描述實(shí)例

$sum

計(jì)算總和。

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])

$avg

計(jì)算平均值

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])

$min

獲取集合中所有文檔對(duì)應(yīng)值得最小值。

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])

$max

獲取集合中所有文檔對(duì)應(yīng)值得最大值。

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])

$push

在結(jié)果文檔中插入值到一個(gè)數(shù)組中。

db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])

$addToSet

在結(jié)果文檔中插入值到一個(gè)數(shù)組中,但不創(chuàng)建副本。

db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])

$first

根據(jù)資源文檔的排序獲取第一個(gè)文檔數(shù)據(jù)。

db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])

$last

根據(jù)資源文檔的排序獲取最后一個(gè)文檔數(shù)據(jù)

db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

2. 管道的概念

管道在Unix和Linux中一般用于將當(dāng)前命令的輸出結(jié)果作為下一個(gè)命令的參數(shù)。

MongoDB的聚合管道將MongoDB文檔在一個(gè)管道處理完畢后將結(jié)果傳遞給下一個(gè)管道處理。管道操作是可以重復(fù)的。

表達(dá)式:處理輸入文檔并輸出。表達(dá)式是無(wú)狀態(tài)的,只能用于計(jì)算當(dāng)前聚合管道的文檔,不能處理其它的文檔。

這里我們介紹一下聚合框架中常用的幾個(gè)操作:

$project:修改輸入文檔的結(jié)構(gòu)。可以用來(lái)重命名、增加或刪除域,也可以用于創(chuàng)建計(jì)算結(jié)果以及嵌套文檔。

$match:用于過(guò)濾數(shù)據(jù),只輸出符合條件的文檔。$match使用MongoDB的標(biāo)準(zhǔn)查詢(xún)操作。

$limit:用來(lái)限制MongoDB聚合管道返回的文檔數(shù)。

$skip:在聚合管道中跳過(guò)指定數(shù)量的文檔,并返回余下的文檔。

$unwind:將文檔中的某一個(gè)數(shù)組類(lèi)型字段拆分成多條,每條包含數(shù)組中的一個(gè)值。

$group:將集合中的文檔分組,可用于統(tǒng)計(jì)結(jié)果。

$sort:將輸入文檔排序后輸出。

$geoNear:輸出接近某一地理位置的有序文檔。

3. 聚合查詢(xún)示例:

db.articles.aggregate( [

{ $match : { score : { $gt : 70, $lte : 90 } } },

{ $group: { _id: null, count: { $sum: 1 } } }

] );

但是在代碼中要如何實(shí)現(xiàn)類(lèi)似以上功能呢?

二、代碼實(shí)現(xiàn)(sum求和)

功能描述:

當(dāng)name和course同時(shí)傳參時(shí),按id分組,統(tǒng)計(jì)總分?jǐn)?shù)

按name分組,統(tǒng)計(jì)相同name的總分?jǐn)?shù)

按course分組,統(tǒng)計(jì)總分?jǐn)?shù)

public double getTotleScoreWithMongoTemplate(StudentScore studentScore) {

//封裝查詢(xún)條件

List operations = new ArrayList<>();

if (StringUtils.isEmpty(studentScore.getName()) && StringUtils.isEmpty(studentScore.getCourse())){

//totleScore為StudentScore類(lèi)中新建的屬性,用于接收統(tǒng)計(jì)后的總分?jǐn)?shù);當(dāng)然也可以使用score(或其他屬性)接收

operations.add(Aggregation.group("id").sum("score").as("totleScore"));

}

if (!StringUtils.isEmpty(studentScore.getName())) {

operations.add(Aggregation.match(Criteria.where("name").is(studentScore.getName())));

operations.add(Aggregation.group("name").sum("score").as("totleScore"));

}

if (!StringUtils.isEmpty(studentScore.getCourse())) {

operations.add(Aggregation.match(Criteria.where("course").is(studentScore.getCourse())));

operations.add(Aggregation.group("course").sum("score").as("totleScore"));

}

Aggregation aggregation = Aggregation.newAggregation(operations);

//查詢(xún)、并獲取結(jié)果

AggregationResults results = mongoTemplate.aggregate(aggregation, "studentScore", StudentScore.class);

double totleScore = results.getUniqueMappedResult().getTotleScore();

return totleScore;

}

對(duì)于其他的功能,可以修改以上代碼自行測(cè)試,此處不再舉例

總結(jié)

以上是生活随笔為你收集整理的mongotemplate 查list_mongoTemplate.aggregate()聚合查询 时间的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品高潮 | 日韩视频中文 | 亚洲无限观看 | 国产成人精品一区二区三区 | 国产精品无码网站 | 亚洲gay视频| 久久久77| 69国产成人精品二区 | 日日日日干 | 黄色片网站在线免费观看 | 免费在线a | 国产精品久久午夜夜伦鲁鲁 | 欧美精品日韩精品 | 中文字幕婷婷 | 中文字幕不卡一区 | 中文字幕国产一区 | 国产人妖视频 | av久色| 成人免费视频国产免费网站 | 欧美色频| 国产女主播一区 | 在线一区二区三区四区五区 | 国产男同gay网站 | 久久精品视频免费观看 | 亚洲国产电影在线观看 | 国产噜噜噜噜噜久久久久久久久 | 日毛片 | 国产成人免费视频 | 性欧美久久久 | 91在线免费视频 | 五级黄高潮片90分钟视频 | 欧美一区二区最爽乱淫视频免费看 | 蜜桃久久av | 性史性dvd影片农村毛片 | 午夜偷拍福利视频 | 性欧美bbw| 清纯唯美亚洲色图 | 日韩在线视频一区二区三区 | 欧美亚洲日本国产 | 三级小视频在线观看 | 国产视频最新 | 国产传媒一区二区三区 | xxxx黄色片 | 欧美一区二区三区久久成人精品 | 激情婷 | 最近中文字幕在线中文高清版 | 操穴网站| 91网页在线观看 | 国产一区二区三区网站 | 波多野结衣一区二区三区在线观看 | 69福利社区| 特黄色大片 | 久久成人毛片 | 国产精品午夜福利 | 久久久久99精品 | 欧美精品一区在线 | 午夜九九| 高清av网| 亚洲一级特黄 | 日韩在线国产精品 | 俄罗斯女人裸体性做爰 | wwwxx在线观看 | 黄色大片在线看 | 精品国产二区三区 | 日本三级中国三级99人妇网站 | 久久精品一区二区三 | 国产亚洲精品成人无码精品网站 | 黑人操亚洲女 | 夜夜操天天射 | 看特级黄色片 | 视频一区二区在线播放 | 欧美激情综合色综合啪啪五月 | 波多野结衣中文字幕久久 | 亚洲欧美在线视频观看 | 奇米777色 | 国产美女免费看 | 国产高潮流白浆喷水视频 | 天天宗合| 熟妇人妻精品一区二区三区视频 | 天天色天天操天天射 | 青青伊人久久 | 高级家教课程在线观看 | 国内精品卡一卡二卡三 | 秋霞欧美一区二区三区视频免费 | 亚洲精品成人 | √天堂在线| 农民工hdxxxx性中国 | 爱吃波客今天最新视频 | 欧美人吸奶水吃奶水 | 性欧美极品另类 | 日韩av第一页 | 伊人久久免费 | 女人张开腿让男人桶爽 | 亚洲日本在线观看 | 日韩av地址 | 欧美日韩国产第一页 | 婷婷九月丁香 | 精品无码成人久久久久久免费 | 欧美一区二区三区成人精品 |