国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - MongoDB - mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

2020-05-15 16:11huangxincheng MongoDB

這篇文章主要為大家詳細(xì)介紹了mongodb聚合的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

今天跟大家分享一下mongodb中比較好玩的知識,主要包括:聚合,游標(biāo)。

一:聚合

常見的聚合操作跟sql server一樣,有:count,distinct,group,mapReduce。

<1> count

count是最簡單,最容易,也是最常用的聚合工具,它的使用跟我們C#里面的count使用簡直一模一樣。

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

<2> distinct

這個操作相信大家也是非常熟悉的,指定了誰,誰就不能重復(fù),直接上圖。

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

<3> group

在mongodb里面做group操作有點(diǎn)小復(fù)雜,不過大家對sql server里面的group比較熟悉的話還是一眼

能看的明白的,其實(shí)group操作本質(zhì)上形成了一種“k-v”模型,就像C#中的Dictionary,好,有了這種思維,

我們來看看如何使用group。

下面舉的例子就是按照age進(jìn)行g(shù)roup操作,value為對應(yīng)age的姓名。下面對這些參數(shù)介紹一下:

key: 這個就是分組的key,我們這里是對年齡分組。

initial: 每組都分享一個”初始化函數(shù)“,特別注意:是每一組,比如這個的age=20的value的list分享一個

initial函數(shù),age=22同樣也分享一個initial函數(shù)。

$reduce: 這個函數(shù)的第一個參數(shù)是當(dāng)前的文檔對象,第二個參數(shù)是上一次function操作的累計(jì)對象,第一次

為initial中的{”perosn“:[]}。有多少個文檔, $reduce就會調(diào)用多少次。

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

看到上面的結(jié)果,是不是有點(diǎn)感覺,我們通過age查看到了相應(yīng)的name人員,不過有時我們可能有如下的要求:

①:想過濾掉age>25一些人員。

②:有時person數(shù)組里面的人員太多,我想加上一個count屬性標(biāo)明一下。

針對上面的需求,在group里面還是很好辦到的,因?yàn)間roup有這么兩個可選參數(shù): condition 和 finalize。

condition: 這個就是過濾條件。

finalize:這是個函數(shù),每一組文檔執(zhí)行完后,多會觸發(fā)此方法,那么在每組集合里面加上count也就是它的活了。

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

<4> mapReduce

這玩意算是聚合函數(shù)中最復(fù)雜的了,不過復(fù)雜也好,越復(fù)雜就越靈活。

mapReduce其實(shí)是一種編程模型,用在分布式計(jì)算中,其中有一個“map”函數(shù),一個”reduce“函數(shù)。

① map:

這個稱為映射函數(shù),里面會調(diào)用emit(key,value),集合會按照你指定的key進(jìn)行映射分組。

② reduce:

這個稱為簡化函數(shù),會對map分組后的數(shù)據(jù)進(jìn)行分組簡化,注意:在reduce(key,value)中的key就是

emit中的key,vlaue為emit分組后的emit(value)的集合,這里也就是很多{"count":1}的數(shù)組。

③ mapReduce:

這個就是最后執(zhí)行的函數(shù)了,參數(shù)為map,reduce和一些可選參數(shù)。具體看圖可知:

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

從圖中我們可以看到如下信息:

result: "存放的集合名“;

input:傳入文檔的個數(shù)。

emit:此函數(shù)被調(diào)用的次數(shù)。

reduce:此函數(shù)被調(diào)用的次數(shù)。

output:最后返回文檔的個數(shù)。

最后我們看一下“collecton”集合里面按姓名分組的情況。

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

二:游標(biāo)

mongodb里面的游標(biāo)有點(diǎn)類似我們說的C#里面延遲執(zhí)行,比如:

var list=db.person.find();

針對這樣的操作,list其實(shí)并沒有獲取到person中的文檔,而是申明一個“查詢結(jié)構(gòu)”,等我們需要的時候通過

for或者next()一次性加載過來,然后讓游標(biāo)逐行讀取,當(dāng)我們枚舉完了之后,游標(biāo)銷毀,之后我們在通過list獲取時,

發(fā)現(xiàn)沒有數(shù)據(jù)返回了。

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

當(dāng)然我們的“查詢構(gòu)造”還可以搞的復(fù)雜點(diǎn),比如分頁,排序都可以加進(jìn)去。

var single=db.person.find().sort({"name",1}).skip(2).limit(2);

那么這樣的“查詢構(gòu)造”可以在我們需要執(zhí)行的時候執(zhí)行,大大提高了不必要的花銷。

mongodb聚合_動力節(jié)點(diǎn)Java學(xué)院整理

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
  • MongoDBmongodb基本命令實(shí)例小結(jié)

    mongodb基本命令實(shí)例小結(jié)

    這篇文章主要介紹了mongodb基本命令,結(jié)合實(shí)例形式總結(jié)分析了MongoDB數(shù)據(jù)庫切換、查看、刪除、查詢等基本命令用法與操作注意事項(xiàng),需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDB分布式文檔存儲數(shù)據(jù)庫之MongoDB分片集群的問題

    分布式文檔存儲數(shù)據(jù)庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數(shù)據(jù)庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBMongodb實(shí)現(xiàn)定時備份與恢復(fù)的方法教程

    Mongodb實(shí)現(xiàn)定時備份與恢復(fù)的方法教程

    這篇文章主要給大家介紹了Mongodb實(shí)現(xiàn)定時備份與恢復(fù)的方法教程,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDBMongoDB中javascript腳本編程簡介和入門實(shí)例

    MongoDB中javascript腳本編程簡介和入門實(shí)例

    作為一個數(shù)據(jù)庫,MongoDB有一個很大的優(yōu)勢——它使用js管理數(shù)據(jù)庫,所以也能夠使用js腳本進(jìn)行復(fù)雜的管理——這種方法非常靈活 ...

    MongoDB教程網(wǎng)6982020-04-24
  • MongoDBMongoDB憑什么躋身數(shù)據(jù)庫排行前五

    MongoDB憑什么躋身數(shù)據(jù)庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續(xù)雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
  • MongoDB遷移sqlserver數(shù)據(jù)到MongoDb的方法

    遷移sqlserver數(shù)據(jù)到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數(shù)據(jù)到MongoDb的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDBMongoDB 內(nèi)存使用情況分析

    MongoDB 內(nèi)存使用情況分析

    都說 MongoDB 是個內(nèi)存大戶,但是怎么知道它到底用了多少內(nèi)存呢...

    MongoDB教程網(wǎng)10002020-09-29
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 中文字幕二区 | 一本一道久久精品综合 | 黄色网址免费 | 精品一区久久 | 欧美劲爆第一页 | 国产成人一区二区 | 国产精品久久久久无码av | 日韩在线区 | 99久久久精品国产一区二区 | 精品欧美一区二区三区久久久 | 精品一区二区三区免费毛片爱 | 国产成人精品免费视频大全最热 | 亚洲 中文 欧美 日韩 在线观看 | 三区在线视频 | 午夜视频在线免费观看 | 亚洲成人免费在线 | 日韩成人av在线 | 日本不卡免费新一二三区 | 久久99深爱久久99精品 | 日韩精品一区在线 | 国产精品二区一区二区aⅴ污介绍 | 一区二区三区影视 | 91麻豆产精品久久久 | 亚洲免费在线观看 | 91精品国产91久久久久久最新 | 透逼视频 | 久久手机免费视频 | 97成人在线 | 欧美一级黄色片 | 久久婷婷av | 欧美日韩一区二区三区在线观看 | 一区二区三区久久 | 国产片在线观看免费观看 | 久久av资源 | 欧美一级免费看 | 精久久 | 中文字幕久久精品 | 欧美性猛交一区二区三区精品 | 欧美一级毛片日韩一级 | 黄色网址免费 | www,四虎|