MongoDB聚合命令比較
創(chuàng)新互聯(lián)建站專注于祁陽企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城開發(fā)。祁陽網(wǎng)站建設(shè)公司,為祁陽等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
以下表格提供了MongoDB聚合命令屬性的簡要概述。
aggregate | mapReduce | group | |
描述 | 在2.2版本中新增加。 以提供聚合任務(wù)的性能和可用性的目的設(shè)計(jì)。 使用管道途徑來轉(zhuǎn)換對(duì)象,傳遞管道操作符序列,像$group、$match和$sort。 關(guān)于管道操作符的更多信息,查看《聚合管道操作符》。 | 實(shí)施Map-Reduce聚合以處理大數(shù)據(jù)集合。 | 提供分組功能。 比aggregate命令慢,比mapReduce命令功能若。 |
關(guān)鍵屬性 | 管道操作符可以按需重復(fù)。 管道操作符對(duì)于每個(gè)輸入文檔不必產(chǎn)生一個(gè)輸出文檔。 也可以生成新的文檔或過濾文檔。 | 除了分組操作,可以實(shí)施復(fù)雜的聚合任務(wù)以及對(duì)逐漸增長的數(shù)據(jù)集的增量聚合。 查看《Map-Reduce示例》和《實(shí)施增量Map-Reduce》。 | 可以要么通過存在的字段分組,要么通過客戶端keyf JavaScript函數(shù),通過計(jì)算列分組。 查看《group》更多使用keyf函數(shù)的信息和示例。 |
伸縮性 | 限制了支持聚合管道的操作符和表達(dá)式。 然而,可以添加計(jì)算列,創(chuàng)建新的虛擬自對(duì)象,通過使用$project管道操作符抽取子列到結(jié)果的頂層。 查看《$project》更多信息,以及《聚合管道操作符》更多關(guān)于所有可用管道操作符的信息。 | 客戶端map、reduce和finalize JavaScript函數(shù)提供對(duì)聚合邏輯的伸縮性。 查看《mapReduce》關(guān)于函數(shù)的具體信息和限制。 | 客戶端reduce和finalize JavaScript函數(shù)提供對(duì)分組邏輯的伸縮性。 查看《group》關(guān)于函數(shù)的具體信息和限制。 |
輸出結(jié)果 | 以各種選項(xiàng)返回結(jié)果(內(nèi)聯(lián)為一個(gè)包含結(jié)果集的文檔,一個(gè)結(jié)果集的游標(biāo))或存儲(chǔ)結(jié)果在一個(gè)集合中。 如果返回內(nèi)聯(lián)為一個(gè)包含結(jié)果集的文檔,結(jié)果集受到BSON文檔大小的限制。 在2.6版本的修改: 可以返回結(jié)果集為游標(biāo)或存儲(chǔ)結(jié)果到一個(gè)集合。 | 以各種選項(xiàng)返回結(jié)果(內(nèi)聯(lián),新集合,merge,replace,reduce)。查看mapReduce關(guān)于輸出選項(xiàng)的詳細(xì)信息。 在2.2版本的修改: 對(duì)于分片map-reduce輸出相比之前的版本,提供了更好的支持。 | 返回結(jié)果內(nèi)聯(lián)為一個(gè)分組條目的數(shù)組。 結(jié)果集必需符合最大BSON文檔大小限制。 在2.2版本的修改: 返回的數(shù)組可以包含最多20000個(gè)元素;也就是最多20000個(gè)唯一分組。之前的版本有10000個(gè)元素的限制。 |
分片 | 支持不分片和分片輸入集合。 | 支持不分片和分片輸入集合。 | 不支持分片集合。 |
注意 | 在2.4版本之前,Javascript代碼以單線程執(zhí)行。 | 在2.4版本之前,Javascript代碼以單線程執(zhí)行。 | |
更多信息 | 查看聚合管道和aggregate。 | 查看Map-Reduce和mapReduce。 | 查看group。 |