- Reference >
- Operators >
- Aggregation Pipeline Operators >
- $getField (aggregation)
$getField (aggregation)¶
On this page
Definition¶
-
$getField¶ New in version 5.0.
Returns the value of a specified field from a document. If you don’t specify an object,
$getFieldreturns the value of the field from$$CURRENT.You can use
$getFieldto retrieve the value of fields with names that contain periods (.) or start with dollar signs ($).Tip
Use
$setFieldto add or update fields with names that contain dollar signs ($) or periods (.).
Syntax¶
$getField has the following syntax:
| Field | Type | Description |
|---|---|---|
field |
String | Field in the If |
input |
Object | Default: A valid expression that
contains the |
$getField has the following shorthand syntax for
retrieving field values from $$CURRENT:
For this syntax, the argument is equivalent to the value of field
described above.
Behavior¶
- If
fieldresolves to anything other than a string constant,$getFieldreturns an error. - If the
fieldthat you specify is not present in theinputobject, or in$$CURRENTif you don’t specify aninputobject,$getFieldreturnsmissing. - If
inputevaluates tomissing,undefined, ornull,$getFieldreturnsnull. - If
inputevaluates to anything other than an object,missing,undefined, ornull,$getFieldreturns an error. $getFielddoesn’t implicitly traverse objects or arrays. For example,$getFieldevaluates afieldvalue ofa.b.cas a top-level fielda.b.cinstead of a nested field{ a: { b: { c: } } }.
See also
Examples¶
Query Fields that Contain Periods (.)¶
Consider an inventory collection with the following documents:
The following operation uses the $getField and
$gt operators to find which products have a price.usd
greater than 200:
The operation returns the following results:
Query Fields that Start with a Dollar Sign ($)¶
Consider an inventory collection with the following documents:
The following operation uses the $getField,
$gt, and $literal operators to find which
products have a $price greater than 200:
The operation returns the following results:
Query a Field in a Sub-document¶
Create an inventory collection with the following documents:
The following operation returns documents where the number of
$small items is less than or equal to 20.
Use these operators to query the collection:
- The
$lteoperator finds values less than or equal to 20. $getFieldrequires explicitfieldandinputparameters because the$smallfield is part of a sub-document.$getFielduses$literalto evaluate “$small”, because the field name has a dollar sign ($) in it.
Example output: