Suggestion: allow using '$[]' / '$' in aggregation '$set' stage

I have some documents that have the following format:

{
  name: "Name",
  columns: [
    {
      id: 1,
      title: "Title 1",
      cards: [
        { text: "Card text" },
         ...
      ],
    },
    {
      id: 2,
      title: "Title 2",
      cards: [ ... ],
    },
    ...
  ],
}

Now, I want to write an aggregation query to modify the text of all cards that are blank to say “(empty)”. It would look something like this, which is very hard to write/read/maintain:

/**
 * field: The field name
 * expression: The expression.
 */
{
  columns: {
    $map: {
      input: "$columns",
      as: "column",
      in: {
        $mergeObjects: [
          "$$column",
          {
            cards: {
              $map: {
                input: "$$column.cards",
                as: "card",
                in: {
                  $cond: {
                    if: {
                      $regexMatch: {
                        input: "$$card.text",
                        regex: /^\s*$/,
                      }
                    },
                    then: {
                      $mergeObjects: [
                        "$$card",
                        {
                          text: "(empty)",
                        }
                      ]
                    },
                    else: "$$card"
                  }
                }
              }
            }
          }
        ]
      }
    }
  }
}

Instead, I’d love to be able to use something like this:

{
  "columns.$[].cards.$[].text": {
    $cond: {
      if: {
        $regexMatch: {
          input: "$columns.$.cards.$.text",
          regex: /^\s*$/,
        }
      },
      then: "(empty)",
      else: "$columns.$.cards.$.text"
    }
  }
}

This would simplify aggregation operations on nested documents by a lot, and the syntax should be safe to use/backwards compatible as currently using “$array.$” throws an error:

Invalid $set :: caused by :: FieldPath field names may not start with '$'. Consider using $getField or $setField.