title: Apollo not updating nested data cached query
body: <p>I have this:</p>
  <pre class="lang-js prettyprint-override"><code>const { data: { orderUpdate: { code } } } = await this.$apollo.mutate({
    mutation: orderUpdate,
    variables: {
      id: this.order.id,
      input: { ...data }
    },
    update: async (store) =&gt; {
      const data = await store.readQuery({
        query: order,
        variables: {
          code: this.order.code,
          clientId: this.order.client.id
        }
      })
  
      store.writeQuery({
        query: order,
        data
      })
    }
  })
  </code></pre>
  <p>Every data is updated fine except the nested ones, i have on <code>data</code> array a nested <code>clothing_types</code> array with some objects, this objects isn't being updates for some reason.</p>
  <p>Anyone can help me with that?</p>
  <p>This is the structure of <code>data</code> var:</p>
  <pre><code>order:
  art_paths: (...)
  client: (...)
  closed_at: null
  clothing_types: Array(2)
  code: (...)
  created_at: (...)
  delivery_date: (...)
  discount: (...)
  id: (...)
  name: (...)
  original_price: (...)
  payment_voucher_paths: (...)
  payments: (...)
  price: (...)
  production_date: (...)
  quantity: (...)
  reminder: (...)
  size_paths: (...)
  states: (...)
  status: (...)
  total_clothings_value: (...)
  total_owing: (...)
  total_paid: (...)
  __typename: (...)
  __ob__: Observer {value: {…}, dep: Dep, vmCount: 0}
  get art_paths: ƒ reactiveGetter()
  set art_paths: ƒ reactiveSetter(newVal)
  get client: ƒ reactiveGetter()
  set client: ƒ reactiveSetter(newVal)
  get closed_at: ƒ reactiveGetter()
  set closed_at: ƒ reactiveSetter(newVal)
  get clothing_types: ƒ reactiveGetter()
  set clothing_types: ƒ reactiveSetter(newVal)
  get code: ƒ reactiveGetter()
  set code: ƒ reactiveSetter(newVal)
  get created_at: ƒ reactiveGetter()
  set created_at: ƒ reactiveSetter(newVal)
  get delivery_date: ƒ reactiveGetter()
  set delivery_date: ƒ reactiveSetter(newVal)
  get discount: ƒ reactiveGetter()
  set discount: ƒ reactiveSetter(newVal)
  get id: ƒ reactiveGetter()
  set id: ƒ reactiveSetter(newVal)
  get name: ƒ reactiveGetter()
  set name: ƒ reactiveSetter(newVal)
  get original_price: ƒ reactiveGetter()
  set original_price: ƒ reactiveSetter(newVal)
  get payment_voucher_paths: ƒ reactiveGetter()
  set payment_voucher_paths: ƒ reactiveSetter(newVal)
  get payments: ƒ reactiveGetter()
  set payments: ƒ reactiveSetter(newVal)
  get price: ƒ reactiveGetter()
  set price: ƒ reactiveSetter(newVal)
  get production_date: ƒ reactiveGetter()
  set production_date: ƒ reactiveSetter(newVal)
  get quantity: ƒ reactiveGetter()
  set quantity: ƒ reactiveSetter(newVal)
  get reminder: ƒ reactiveGetter()
  set reminder: ƒ reactiveSetter(newVal)
  get size_paths: ƒ reactiveGetter()
  set size_paths: ƒ reactiveSetter(newVal)
  get states: ƒ reactiveGetter()
  set states: ƒ reactiveSetter(newVal)
  get status: ƒ reactiveGetter()
  set status: ƒ reactiveSetter(newVal)
  get total_clothings_value: ƒ reactiveGetter()
  set total_clothings_value: ƒ reactiveSetter(newVal)
  get total_owing: ƒ reactiveGetter()
  set total_owing: ƒ reactiveSetter(newVal)
  get total_paid: ƒ reactiveGetter()
  set total_paid: ƒ reactiveSetter(newVal)
  get __typename: ƒ reactiveGetter()
  set __typename: ƒ reactiveSetter(newVal)
  [[Prototype]]: Object
  [[Prototype]]: Object
  </code></pre>
  <p>My graphql <code>order</code> query, of course, is returning those data, here it is:</p>
  <pre><code>query order ($code: ID! $clientId: ID!) {
    order (code: $code clientId: $clientId) {
      ...OrderParts
    }
  }
  
  fragment OrderParts on Order {
    client {
        id
        name
        phone
        total_owing
        shipping_company {
          name
        }
        branch {
          city {
            name
          }
        }
        city {
          name
        }
      }
      status {
        id
        text
      }
      clothing_types {
        id
        key
        name
        is_hidden
        commission
        quantity
        value
        total_value
      }
      payments (orderBy: [
        {column: &quot;date&quot; order: DESC}
        {column: &quot;created_at&quot; order: DESC}
      ]) {
        id
        value
        date
        note
        via {
          id
          name
        }
        confirmed_at
        is_confirmed
        created_at
      }
      id
      code
      name
      price
      original_price
      states
      discount
      quantity
      total_paid
      total_owing
      total_clothings_value
      production_date
      delivery_date
      created_at
      closed_at
      art_paths
      size_paths
      payment_voucher_paths
      reminder
  }
  </code></pre>