This `type` value wouldn't work. Each sub-field would need its own schema key:

```js
{
  updatesHistory: {
    type: [Object]
    autoValue: function (doc) {
      var updatesHistory = doc.updatesHistory || [];
      updatesHistory.push({
        date: new Date,
        content: doc.content
      });
      return updatesHistory
    }
  },
  'updatesHistory.$.date': {
    type: Date
  },
  'updatesHistory.$.content': {
    type: String
  }
}
```

Technically, you'd also have to check for $set or more likely $push in `doc`, and even then this might not be the best example because it assumes that the update modifier includes `updatesHistory`, when sometimes it might not, but yet there might be updatesHistory stored in the DB. Someone using this could ensure that they always use it properly, but it definitely wouldn't be a foolproof function.