MongoDB 管道的概念

2021-08-11 03:52:02 字數 1161 閱讀 7980

一 介紹

管道在unix和linux中一般用於將當前命令的輸出結果作為下乙個命令的引數。

mongodb的聚合管道將mongodb文件在乙個管道處理完畢後將結果傳遞給下乙個管道處理。管道操作是可以重複的。

表示式:處理輸入文件並輸出。表示式是無狀態的,只能用於計算當前聚合管道的文件,不能處理其它的文件。

這裡我們介紹一下聚合框架中常用的幾個操作:

$project:修改輸入文件的結構。可以用來重新命名、增加或刪除域,也可以用於建立計算結果以及巢狀文件。

$match:用於過濾資料,只輸出符合條件的文件。$match使用mongodb的標準查詢操作。

$limit:用來限制mongodb聚合管道返回的文件數。

$skip:在聚合管道中跳過指定數量的文件,並返回餘下的文件。

$unwind:將文件中的某乙個陣列型別欄位拆分成多條,每條包含陣列中的乙個值。

$group:將集合中的文件分組,可用於統計結果。

$sort:將輸入文件排序後輸出。

$geonear:輸出接近某一地理位置的有序文件。

二 管道操作符例項

1、$project例項

db.article.aggregate(

}

);

這樣的話結果中就只還有_id,tilte和author三個欄位了,預設情況下_id欄位是被包含的,如果要想不包含_id話可以這樣:

db.article.aggregate(

});

2.$match例項

db.articles.aggregate( [

} },

} }

] );

$match用於獲取分數大於70小於或等於90記錄,然後將符合條件的記錄送到下一階段$group管道操作符進行處理。

3.$skip例項

db.article.aggregate(

);

經過$skip管道操作符處理後,前五個文件被"過濾"掉。

mongodb 聚合管道

mongodb聚合管道由多個階段組成。每個階段在文件通過管道時轉換文件。管道階段不需要為每個輸入文件生成乙個輸出文件 例如,有些階段可能會生成新的文件或過濾掉文件。管道階段可以在管道 現多次,但 out merge和 geonear階段除外。有關所有可用階段的列表,請參見聚合管道階段。mongodb...

MongoDB 聚集管道

在mongodb2.2新出現的。聚集管道式基於資料處理管道概念建模的資料聚集框架。文件進入乙個多階段能將該文件轉化為聚集結果的管道。聚集管道提供了map reduce方法了替代物,並在很多聚集任務中是首選的方案,因為map reduce的複雜性可能是你不希望看到的。上圖是乙個帶注釋的聚集管道的操作,...

MongoDB概念解析

mongodb預設把 id設定為主鍵 開頭的鍵是保留的 資料庫名必須為小寫 需注意文件中的鍵 值對是有序的。文件中的值不僅可以是在雙引號裡面的字串,還可以是其他幾種資料型別 甚至可以是整個嵌入的文件 mongodb區分型別和大小寫。mongodb的文件不能有重複的鍵。文件的鍵是字串。除了少數例外情況...