title: How to return an async/await promise in a Mongoose virtual field
body: <p>In my NodeJS application I'm using a virtual field (with Mongoose) which adds a rating field to my 'Club' model. The value of this rating is coming from Facebook (<a href="https://github.com/node-facebook/facebook-node-sdk" rel="nofollow noreferrer">facebook-node-sdk</a>). I'm currently having the following code:</p>
  
  <pre><code>async function getFbRating(slug) {
     var ratingPromise = await FB.api(slug, { fields: 'overall_star_rating' });
     var rating = ratingPromise.overall_star_rating;
     console.log('1: ' + rating);
     return rating;
  };
  
  clubSchema.virtual('rating').get(async function() {
     const ratingPromise = getFbRating(this.fb);
     const rating = await ratingPromise;
     console.log('2: ' + rating);
     return rating;
  });
  </code></pre>
  
  <p>This code is logging the correct ratings..</p>
  
  <pre><code>1: 3.8
  2: 3.8
  </code></pre>
  
  <p>But the 'rating' field is not returning any value</p>
  
  <pre><code>rating: {}
  </code></pre>
  
  <p>Now I did some research and found out that a virtual field cannot return a promise, which explains the empty return. I also read things about using a Mongoose method instead, but I cannot figure out how..</p>
  
  <p>Currently, I'm totally lost on how I can save this value to my database. Hope you guys can help me out!</p>