您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關mongodb在查詢時使用聚合的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
MongoDB除了基本的查詢功能之外,還提供了強大的聚合功能。
我們可以使用count, distinct, group, mapreduce, aggregate等方法實現聚合查詢。
count
查詢記錄條數。
命令:
db.collectionName.count()
distinct
用來找出給定鍵的所有不同的值
命令:
db.collectionName(key)
group
分組查詢。
參數說明:
key:用來分組文檔的字段。
initial: 每組都分享一個”初始化函數“
$reduce: 執行的reduce函數,第一個參數是當前的文檔對象,第二個參數是上一次function操作的累計對象,有多少個文檔, $reduce就會調用多少次。
condition:(可選)執行過濾的條件
finalize:(可選)在reduce執行完成,結果集返回之前對結果集最終執行的函數。
MapReduce
命令:
db.runCommand( { mapreduce : 字符串,集合名, map : 函數,見下文 reduce : 函數,見下文 [, query : 文檔,發往map函數前先給過渡文檔] [, sort : 文檔,發往map函數前先給文檔排序] [, limit : 整數,發往map函數的文檔數量上限] [, out : 字符串,統計結果保存的集合] [, keeptemp: 布爾值,鏈接關閉時臨時結果集合是否保存] [, finalize : 函數,將reduce的結果送給這個函數,做最后的處理] [, scope : 文檔,js代碼中要用到的變量] [, jsMode : 布爾值,是否減少執行過程中BSON和JS的轉換,默認true] //注:false時 BSON-->JS-->map-->BSON-->JS-->reduce-->BSON,可處理非常大的mapreduce,<br> //true時BSON-->js-->map-->reduce-->BSON [, verbose : 布爾值,是否產生更加詳細的服務器日志,默認true] });
MongoDB中的MapReduce相當于關系數據庫中的group by。
參數:
map函數:這個稱為映射函數,里面會調用emit(key,value),集合會按照你指定的key進行映射分組。
reduce函數:這個稱為簡化函數,會對map分組后的數據進行分組簡化,注意:在reduce(key,value)中的key就是emit中的key,vlaue為emit分組后的emit(value)的集合。
關于mongodb在查詢時使用聚合的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。