Filters the documents to pass only the documents that match the specified condition(s) to the next pipeline stage.
$matchstage has the following prototype form:
$matchtakes a document that specifies the query conditions. The query syntax is identical to the read operation query syntax; i.e.
$matchdoes not accept raw aggregation expressions. Instead, use a
$exprquery expression to include aggregation expression in
- Place the
$matchas early in the aggregation pipeline as possible. Because
$matchlimits the total number of documents in the aggregation pipeline, earlier
$matchoperations minimize the amount of processing down the pipe.
- If you place a
$matchat the very beginning of a pipeline, the query can take advantage of indexes like any other
$matchquery syntax is identical to the read operation query syntax; i.e.
$matchdoes not accept raw aggregation expressions. To include aggregation expression in
$match, use a
Views do not support text search.
The examples use a collection named
articles with the following documents:
The following operation uses
$match to perform a simple equality match:
$match selects the documents where the
author field equals
dave, and the aggregation returns the following:
In the aggregation pipeline,
$match selects the documents where either the
score is greater than
70 and less than
90 or the
views is greater than or equal to
1000. These documents are then piped to the
$group to perform a count. The aggregation returns the following: