title: Mongoose .sort breaks .skip & .limit
body: <p>So i've implemented infiniscroll with mongoose and my query looks like this</p>
  <pre class="lang-js prettyprint-override"><code>const posts = await Seed.find({status: 'APPROVED', 'color.name': color})
    .skip(parseInt(skip) || 0)
    .limit(8)
    .exec()
  </code></pre>
  <p><strong>That works great, from 0 to the end of posts.</strong> However if i add .sort({upvotes: -1})</p>
  <pre class="lang-js prettyprint-override"><code>const posts = await Seed.find({status: 'APPROVED', 'color.name': color})
    .sort({upvotes: -1})
    .skip(parseInt(skip) || 0)
    .limit(8)
    .exec()
  </code></pre>
  <p>Everything goes nuts, i can get the same post 6 times.</p>
  <p>I've stared at this for hours now and i simply cannot understand why this is happening and it feels like a bug.</p>
  <p>I've tried .sort('-upvotes'), .sort({upvotes: 'desc'}), .sort({'upvotes': 'desc'})</p>
  <p><strong>Update: Sorting by .sort('-date') actually works, so i'm having a problem with upvotes specifically. The majority of posts has 1 upvote. Does mongoose randomize then? Sounds really strange if it did</strong></p>
  <p>If anyone can help me figure this out i would be very thankful</p>