Unwind
Last updated
Last updated
The $unwind operator is used to deconstruct array fields. How deconstruction works For each array element a new document is produced having that element in the position of the field array. This means that applying the unwind operator on a single document's array field which contains 10 elements, produces 10 different documents having one of the array elements instead of the array field. It is possible to define if a new document will produced in case a document either doesn't contain the array field or it is empty.
The following sample finds the distinct activities grouped by age for Traveler
documents.
SelectMany
on Activities creates the $unwind stage
new { }
creates the $project stage
GroupBy
groups documents by age field
Select
creates another $project stage where Distinct
ensures activities will not contain duplicate values per group - it does that by using $addToSet operator in the $group stage rather than a $push