原文連接:https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/mongodb
管道聚合express
$project Reshapes each document in the stream, such as by adding new fields or removing existing fields. For each input document, outputs one document.app
修改文件的輸入或輸出流,例如增長新的字段,或者刪除已存在的字段。ide
$match Filters the document stream to allow only matching documents to pass unmodified into the next pipeline stage. $match uses standard MongoDB queries. For each input document, outputs either one document (a match) or zero documents (no match).ui
過濾文件流,但不改變文件流中的字段。spa
$redact Reshapes each document in the stream by restricting the content for each document based on information stored in the documents themselves. Incorporates the functionality of $project and $match. Can be used to implement field level redaction. For each input document, outputs either one or zero documents.rest
The argument can be any valid expression as long as it resolves to $$DESCEND, $$PRUNE, or $$KEEP system variables. For more information on expressions, see Expressions.orm
支持表達式方式的過濾,很重要的功能。ip
$limit Passes the first n documents unmodified to the pipeline where n is the specified limit. For each input document, outputs either one document (for the first n documents) or zero documents (after the first n documents).ci
限制傳入到下一個階段的字段個數。
$skip Skips the first n documents where n is the specified skip number and passes the remaining documents unmodified to the pipeline. For each input document, outputs either zero documents (for the first n documents) or one document (if after the first ndocuments).
$unwind Deconstructs an array field from the input documents to output a document for eachelement. Each output document replaces the array with an element value. For each input document, outputs n documents where n is the number of array elements and can be zero for an empty array.
對某個字段組進行分組,分紅多個元素。
$group Groups input documents by a specified identifier expression and applies the accumulator expression(s), if specified, to each group. Consumes all input documents and outputs one document per each distinct group. The output documents only contain the identifier field and, if specified, accumulated fields.
根據group分組的表達形式,對於輸入的字段進行處理,並規定的group的組的規則輸出。
$sort Reorders the document stream by a specified sort key. Only the order changes; the documents remain unmodified. For each input document, outputs one document.
$geoNear Returns an ordered stream of documents based on the proximity to a geospatial point. Incorporates the functionality of $match, $sort, and $limit for geospatial data. The output documents include an additional distance field and can include a location identifier field.
$lookup Performs a left outer join to another collection in the same database to filter in documents from the 「joined」 collection for processing.
$out Writes the resulting documents of the aggregation pipeline to a collection. To use the $out stage, it must be the last stage in the pipeline.
$indexStats Returns statistics regarding the use of each index for the collection.