MongoDB中的Group By
為了回應用戶對簡單數據訪問的需求,MongoDB 推出了聚合框架(Aggregation Framework)。該框架使用聲明性管道符號來支持類似于 SQL Group By 操作的功能,而不再需要用戶編寫自定義的 JavaScript 例程。
大部分管道操作會在“aggregate”子句后會跟上“$match”打頭。它們用在一起,就類似于 SQL 的 from 和 where 子句,或是 MongoDB 的 find 函數。“$project”子句看起來也非常類似 SQL 或 MongoDB 中的某個概念(和 SQL 不同的是,它位于表達式尾端)。
接下來介紹的操作在 MongoDB 聚合框架中是獨一無二的。與大多數關系數據庫不同,MongoDB 天生就可以在行/文檔內存儲數組。盡管該特性對于全有全無的數據訪問十分便利,但是它對于需要組合投影、分組和過濾操作來編寫報告的工作,卻顯得相當復雜。“$unwind”子句將數組分解為單個的元素,并與文檔的其余部分一同返回。
“$group”操作與 SQL 的 Group By 子句用途相同,但是使用起來卻更像是 LINQ 中的分組運算符。與取回一行平面數據不同,“$group”操作的結果集會呈現為一個持續的嵌套結構。正因如此,使用“$group”可以返回聚合信息,例如對于每個分組中的實際文檔,計算文檔整體或部分的數目和平均值。
查看英文原文:http://www.infoq.com/news/2012/02/MongoDB-Aggregation
來自:
InfoQ
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!