- Reference >
- Operators >
- Aggregation Pipeline Operators >
- Literal Aggregation Operators >
- $literal (aggregation)
$literal (aggregation)¶
On this page
Definition¶
Behavior¶
If the <value> is an expression,
$literal does not evaluate the expression but instead
returns the unparsed expression.
| Example | Result | |
|---|---|---|
{ $literal: { $add: [ 2, 3 ] } } |
{ "$add" : [ 2, 3 ] } |
|
{ $literal: { $literal: 1 } } |
{ "$literal" : 1 } |
Examples¶
Treat $ as a Literal¶
In expression,
the dollar sign $ evaluates to a field path; i.e. provides access
to the field. For example, the $eq expression $eq: [
"$price", "$1" ] performs an equality check between the value in the
field named price and the value in the field named 1 in the
document.
The following example uses a $literal expression to treat
a string that contains a dollar sign "$1" as a constant value.
A collection records has the following documents:
This operation projects a field named costsOneDollar that holds a
boolean value, indicating whether the value of the price field is
equal to the string "$1":
Project a New Field with Value 1¶
The $project stage uses the expression <field>: 1 to
include the <field> in the output. The following example uses the
$literal to return a new field set to the value of 1.
A collection bids has the following documents:
The following aggregation evaluates the expression item: 1 to mean
return the existing field item in the output, but uses the
{ $literal: 1 } expression to return a new
field startAt set to the value 1:
The operation results in the following documents: