- Reference >
- Operators >
- Aggregation Pipeline Operators >
- Array Aggregation Operators >
- $arrayToObject (aggregation)
$arrayToObject (aggregation)¶
On this page
Definition¶
-
$arrayToObject
¶ New in version 3.4.4.
Converts an array into a single document; the array must be either:
An array of two-element arrays where the first element is the field name, and the second element is the field value:
- OR -
An array of documents that contains two fields,
k
andv
where:- The
k
field contains the field name. - The
v
field contains the value of the field.
- The
$arrayToObject
has the following syntax:The
<expression>
can be any valid expression that resolves to an array of two-element arrays or array of documents that contains “k” and “v” fields.For more information on expressions, see Expressions.
Behavior¶
If the name of a field repeats in the array,
- Starting in 3.4.19,
$arrayToObject
uses the last value for that field. For 3.4.4-3.4.19, the value uses depends on the driver.
Example | Results |
---|---|
For MongoDB 3.4, starting in 3.4.19+, if the name
of a field repeats in the array, |
Examples¶
$arrayToObject
Example¶
Consider a inventory
collection with the following documents:
The following aggregation pipeline operation use the
$arrayToObject
to return the dimensions
field as a
document:
The operation returns the following:
For MongoDB 3.4, starting in 3.4.19+, if the name of a field repeats in
the array, $arrayToObject
uses the last value for that
field.
$objectToArray
+ $arrayToObject
Example¶
Consider a inventory
collection with the following documents:
The following aggregation pipeline operation calculates the total in
stock for each item and adds to the instock
document:
The operation returns the following:
See also