聚合操作處理數(shù)據(jù)記錄并返回計(jì)算后的結(jié)果。聚合操作將多個(gè)文檔分組,并能對已分組的數(shù)據(jù)執(zhí)行一系列操作而返回單一結(jié)果。MongoDB提供了三種執(zhí)行聚合的方式:聚合管道,map-reduce方法和單一目的聚合操作。
聚合管道
MongoDB的聚合框架模型建立在數(shù)據(jù)處理管道這一概念的基礎(chǔ)之上。文檔進(jìn)入多階段管道中,管道將文檔轉(zhuǎn)換為聚合結(jié)果。最基本的管道階段類似于查詢過濾器和修改輸出文檔形式的文檔轉(zhuǎn)換器。
其他的管道為分組和排序提供一些工具,可通過指定一個(gè)或多個(gè)字段完成分組或排序;同時(shí)提供了聚合數(shù)組內(nèi)容的工具,操作的數(shù)組包括文檔數(shù)組。另外,聚合階段能夠使用一些運(yùn)算符,完成諸如計(jì)算均值或連接字符串之類的任務(wù)。
管道利用MongoDB本機(jī)的操作方法提供了有效的數(shù)據(jù)聚合操作,并且對于數(shù)據(jù)聚合來說采用本機(jī)的操作方法是首選的。
聚合管道支持在分片集合上執(zhí)行操作。
聚合管道在它的某些階段能夠使用索引來提高性能。另外,聚合管道有一個(gè)內(nèi)部優(yōu)化階段。
Map-Reduce
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26