MongoDB Aggregation Stages Operator - $unwind
Description
The MongoDB $unwind stages operator is used to deconstructing an array field from the input documents to output a document for each element. Every output document is the input document with the value of the array field replaced by the element.
Syntax:
{ $unwind: <field path> }
Points to remember:
- If the value of a field is not an array, db.collection.aggregate() generates an error.
- If the specified path for a field does not exist in an input document, the pipeline ignores the input document and displaying no output.
- If the array is empty in an input document, the pipeline ignores the input document and displaying no output.
Sample collection test1
{
"_id" : 1,
"shirt" : "Half Sleeve",
"sizes" : [
"medium",
"XL",
"free"
]
}
{ "_id" : 2, "shirt" : "Full Sleeve", "sizes" : [ ] }
Example: $unwind
The following aggregation $unwind stage is used to output a document for each element in the sizes array.
> db.test1.aggregate( [ { $unwind : "$sizes" } ] );
Output:
> db.test1.aggregate( [ { $unwind : "$sizes" } ] ); { "_id" : 1, "shirt" : "Half Sleeve", "sizes" : "medium" } { "_id" : 1, "shirt" : "Half Sleeve", "sizes" : "XL" } { "_id" : 1, "shirt" : "Half Sleeve", "sizes" : "free" }
Here from the result it shows that, each document is identical to the input document except for the value of the sizes field that contain the value from the original sizes array.
- New Content published on w3resource:
- HTML-CSS Practical: Exercises, Practice, Solution
- Java Regular Expression: Exercises, Practice, Solution
- Scala Programming Exercises, Practice, Solution
- Python Itertools exercises
- Python Numpy exercises
- Python GeoPy Package exercises
- Python Pandas exercises
- Python nltk exercises
- Python BeautifulSoup exercises
- Form Template
- Composer - PHP Package Manager
- PHPUnit - PHP Testing
- Laravel - PHP Framework
- Angular - JavaScript Framework
- Vue - JavaScript Framework
- Jest - JavaScript Testing Framework