title: Why is mongoose calling my validator with an empty string when my default array is empty?
body: <p>I've added this line to my schema...</p>
  <pre><code>recentTags: {type:[String], default: [], validate: tagRegex}
  </code></pre>
  <p>And this is my tag validation regex...</p>
  <pre><code>tagRegex: /^[a-z0-9#]+( *[a-z0-9\\/:\-()[\].?#]+)*$/
  </code></pre>
  <p>Note: it doesn't allow an empty string, nor should it as that is not a valid tag name.</p>
  <p>So my problem is this, all my tests that touch that schema now fail with this Mongo error...</p>
  <pre><code>ValidationError: User validation failed: recentTags: Validator failed for path `recentTags` with value ``
  </code></pre>
  <p>I don't get why it's trying to run my validator at all, why would it do that when the array of values is empty? And why is it passing it an empty string?</p>
  <p>Note I've been careful to rebuild my test db and wait for all the indexing to finish before running my tests and the rest of them work fine. My Mongo version is 3.6.8 and my Mongoose version is ^5.9.25, all running on node v14.11.0</p>