title: Mongoose populate with filter
body: <p>My schema:</p>
  
  <pre><code>const ProductSchema = new Schema({
      Category: String,
      Subcategory: String,
      Name: String,
      Offers: [{ type: ObjectId, ref: "Offer" }]
  })
  
  const OfferSchema = new Schema({
      Quantity: Number,
      Images: [String],
      Price: Number,
      Size: String,
      Color: String
  })
  </code></pre>
  
  <p>I am doing query for products with filter offers with limit and skip. I tried this:</p>
  
  <pre><code>const products = await ProductSchema.find({ ...someFilter }).populate({
      path: "Offers",
      match: {
          Quantity: { $gt: 2 },
          Images: { $exists: true, $ne: [] }
      }
  }).skip(skip).limit(limit)
  </code></pre>
  
  <p>And I want to get only documents where length of offers is > 0. But I get documents with empty Offers. If I filter like this:</p>
  
  <pre><code>products.filter(item =&gt; item.Offers.length &gt; 0)
  </code></pre>
  
  <p>My pagination will break. Can you help me? </p>