一 介紹
管道在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的文件不能有重複的鍵。文件的鍵是字串。除了少數例外情況...