title: Why does mongoose populate virtual field as array instead of single item?
body: <p>I want to populate an object into a virtual field with mongoose as a JSON object, but it always returns an array with a single item.</p>
  
  <p>Here is my scheme code (part with virtual field):</p>
  
  <pre><code>Order.virtual('client', {
      type: 'ObjectId',
      ref: 'User',
      localField: 'clientId',
      foreignField: '_id'
  });
  </code></pre>
  
  <p>Here is how I do population: </p>
  
  <pre><code>Order.findOneAndUpdate({ internalStatus: 2}, { internalStatus: 3 })
      .lean()
      .populate({ path: 'client', select: 'email' })
      .exec(function (err, order) {
          //...
      });
  </code></pre>
  
  <p>Here is what I receive in returned JSON:</p>
  
  <pre><code>{ _id: 5ad903d90443fe13b8c9061a,
      client: [ { _id: 5b3755fe69635d1e942d00a8, email: 'user@user.com' } ] }
  </code></pre>
  
  <p>This is what I want to achieve:</p>
  
  <pre><code>{ _id: 5ad903d90443fe13b8c9061a,
      client: { _id: 5b3755fe69635d1e942d00a8, email: 'user@user.com' } }
  </code></pre>
  
  <p>Thank you for any help or suggestions!</p>