title: Mongoose populate query return all results with skip/limit
body: <p>I have the following method in a little node/express app :</p>
  
  <pre><code>async getAll(req, res) {
      const movies = await movieModel
          .find()
          .populate({path: 'genres', select: 'name'})
          .skip(0)
          .limit(15);
      return res.send(movies);
  };
  </code></pre>
  
  <p>With the following schema :</p>
  
  <pre><code>const MovieSchema = new mongoose.Schema({
      externalId: { required: true, type: Number },
      title: { required: true, type: String },
      genres: [{ ref: "Genre", type: mongoose.Schema.Types.ObjectId }],
      releaseDate: {type: Date},
      originalLanguage: {type : String},
      originalTitle: {type : String},
      posterPath: {type : String},
      backdropPath: {type : String},
      overview: {type: String},
      comments: [{ ref: "Comment", type: mongoose.Schema.Types.ObjectId }],
      votes: [VoteSchema]
  }, {timestamps: true}
  });
  
  MovieSchema.virtual("averageNote").get(function () {
      let avg = 0;
      if (this.votes.length == 0) {
          return '-';
      }
      this.votes.forEach(vote =&gt; {
          avg += vote.note;
      });
      avg = avg / this.votes.length;
      return avg.toFixed(2);
  });
  
  MovieSchema.set("toJSON", {
      transform: (doc, ret) =&gt; {
          ret.id = ret._id;
          delete ret._id;
          delete ret.__v;
      },
      virtuals: true,
      getters: true
  });
  </code></pre>
  
  <p>However the query always return all document entries.
  I also tried to add <code>exec()</code> at the end of the query or with <code>.populate({path: 'genres', select: 'name', options: {skip: 0, limit: 15} })</code> but without result.</p>
  
  <p>I tried on an other schema which is simpler and <code>skip</code>/<code>limit</code> worked just fine, so issue probably comes from my schema but I can't figure out where the problem is.</p>
  
  <p>I also tried with the virtual field commented but still, <code>limit</code> and <code>sort</code> where not used.</p>
  
  <p>My guess is that it's comes from <code>votes: [VoteSchema]</code> since it's the first time I use this, but it was recommanded by my teacher as using <code>ref</code> 
  isn't recommended in a non relational database. Furthermore, in order to calculate the averageNote as a virtual field, I have no other choice.</p>
  
  <p>EDIT : just tried it back with <code>votes: [{ ref: "Vote", type: mongoose.Schema.Types.ObjectId }]</code> And I still can't <code>limit</code> nor <code>skip</code></p>
  
  <p>Node version : 10.15.1</p>
  
  <p>MongoDB version : 4.0.6</p>
  
  <p>Mongoose version : 5.3.1</p>
  
  <p>Let me know if I should add any other informations</p>