The positional $ operator cannot be used for queries which
traverse more than one array, such as queries that traverse arrays
nested within other arrays, because the replacement for the
$ placeholder is a single value

The positional $ operator facilitates updates to arrays
that contain embedded documents. Use the positional $
operator to access the fields in the embedded documents with the
dot notation on the
$ operator.

In the example below, the $ operator updates the value of the
std field in the first embedded document that has grade field with
a value less than or equal to 90 and a mean field with a value
greater than 80: