Expose the array index in a $map operation

XMLWordPrintableJSON

    • Query Execution
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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"}}}
      

              Assignee:
              Kyle Booker (Inactive)
              Reporter:
              Peter Williamson
              Votes:
              1 Vote for this issue
              Watchers:
              15 Start watching this issue

                Created:
                Updated:
                Resolved: