-
Type: Task
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Aggregation Framework
-
Query Execution
Currently the only way to know the element index in a $map is to create a "for loop" using $range:
{$map: { input: {$range: [0, {$size: "$arr"}]}, as: "x", in: {index: "$x", value: {$arrayElemAt: ["$arr", "$$x"]}}
A simpler and more understandable option would be to have a meta variable such as $$index which is automatically set to the current array index. If would have no impact on existing aggregation pipelines but would simplify situations where the array index is needed, changing the example above to:
{$map: {input "$arr", as "x", in: {index: "$$index", value "$$x"}}}
- duplicates
-
SERVER-93758 Merge SPM3160-feature-branch to master
- In Progress
- is duplicated by
-
SERVER-91384 Expose the array index for $map
- Closed