title: mongodb 3.6 arrayFilters expected a single top-level field name
body: <p>Im trying to update nested array using arrayFilters, seems like it should work, according to documentation but I've got error:</p>
  
  <blockquote>
    <p>Error parsing array filter: Expected a single top-level field name,
    found 'w' and 'd'</p>
  </blockquote>
  
  <p>query looks like that:</p>
  
  <pre><code>db.getCollection("timesheets").update( {
       "year": "2018",
       "month": "06"    },    {
       "$set": {
         "workers.$[w].days.$[d]": {
           "day": 9,
           "month": "06",
           "year": "2018",
           "isHoliday": false,
           "isSaturday": true,
           "isSunday": false,
           "canEditPlanned": true
         }
       }    },   {
       "arrayFilters": [
         {
  
               "w._id": "XT5PFAPN9TFY3jXtJ",
               "d.day": 9
  
         }
       ]    })
  </code></pre>