title: spring mongodb: arrayFilters is absent
body: <p>I need to build an update operation like this:</p>
  <pre><code>db.collection.update({
    &quot;referencedGeneralPractitioner.id&quot;: &quot;id1&quot;
  },
  {
    $set: {
      &quot;referencedGeneralPractitioner.$[elem]&quot;: {
        &quot;resourceType&quot;: &quot;practitioner&quot;,
        &quot;id&quot;: &quot;id1&quot;,
        &quot;field&quot;: &quot;modified&quot;
      }
    }
  },
  {
    &quot;multi&quot;: true,
    &quot;arrayFilters&quot;: [
      {
        &quot;elem.id&quot;: {
          $eq: &quot;id1&quot;
        }
      }
    ]
  })
  </code></pre>
  <p>I've tried to build it using spring data mongodb:</p>
  <pre class="lang-java prettyprint-override"><code>Query query = new Query();
  Update update = new Update();
  this.mongoTemplate.updateMulti(
      query.addCriteria(Criteria.where(&quot;referencedGeneralPractitioner.id&quot;).is(practitionerReference.getId())),
      update
          .set(&quot;referencedGeneralPractitioner.$[elem]&quot;, practitionerReference)
          .filterArray(Criteria.where(&quot;elem.id&quot;).is(practitionerReference.getId()))
      ,
      Patient.class
  );
  </code></pre>
  <p>However, as you can see in the log it performs next update:</p>
  <p>Calling update using query:</p>
  <pre class="lang-json prettyprint-override"><code>{
     &quot;referencedGeneralPractitioner._id&quot;:&quot;ae3e9046-5f78-434e-bf39-e6477a8183a9&quot;
  }
  </code></pre>
  <p>and, update:</p>
  <pre class="lang-json prettyprint-override"><code>{
     &quot;$set&quot;:{
        &quot;referencedGeneralPractitioner.$[elem]&quot;:{
           &quot;_id&quot;:&quot;ae3e9046-5f78-434e-bf39-e6477a8183a9&quot;,
           &quot;resourceType&quot;:&quot;practitioner&quot;,
           &quot;field&quot;: &quot;modified&quot;
        }
     }
  }
  </code></pre>
  <p>As you can see, <code>arrayFilters</code> block is not present.</p>
  <p>Any ideas?</p>