title: await is not working correctly for collection.insertMany()?
body: <p>I am trying to insert many records in my collection with <code>collection.insertMany()</code> and I made a test for it but unfortenly this test is not deterministic(<strong>await</strong> sometimes works sometimes not). Why I think so, because <code>collection.insertMany('Inserted ten rogues in collection')</code> sometimes diplayse after <code>console.log(queryResult)</code> which displays empty array what causes that my test sometimes fails sometimes pass. Why this <strong>await</strong> sometimes working sometimes not ?</p>
  
  <p>My test:</p>
  
  <pre class="lang-js prettyprint-override"><code>describe('Saving records', () =&gt; {
      it('Save single record in DB', async () =&gt; {
          const warrior1 = new Warrior({
              name: 'John',
              class: 'priest',
              age: 21,
              weight: 75
          });
          await warrior1.save();
          assert(warrior1.isNew === false);
      });
      it('Save multiple records in DB', async () =&gt; {
          const tenRogues = createTenRouges();
          await Warrior.collection.insertMany(tenRogues, (err, _docs) =&gt; {
              if(err) {
                  console.error(err);
              } else {
                  console.log('Inserted ten rogues in collection');
              }
          });
          const queryResult = await Warrior.find({class: 'rogue'});
          console.log(queryResult);
          assert(queryResult.length === 10);
      });
  });
  </code></pre>
  
  <p>CreateTenRogues method :</p>
  
  <pre class="lang-js prettyprint-override"><code>function createTenRouges() {
      const warriors = [];
      for (let i = 0; i &lt; 10; i++) {
          warriors.push(new Warrior({
              name: 'John',
              class: 'rogue',
              age: 21,
              weight: 75
          }));
      }
      return warriors;
  }
  </code></pre>