title: mongoose sort document by populated field with conditions
body: <p>i have two schema</p>
  
  <p><code>vehicle</code> schema :</p>
  
  <pre><code>const VehicleSchema = new Schema({
  title: {
      type: String,
      required: true
  },
  price: {
      type: Number,
      required: true
  },
  );
  VehicleSchema.virtual('promotions', {
     ref: 'Promotion',
     localField: '_id',
     foreignField: 'vehicle',
     justOne: true
  });
  export default mongoose.model('Vehicle', VehicleSchema);
  </code></pre>
  
  <p><code>Promotion</code> Schema :</p>
  
  <pre><code>const PromotionSchema = new Schema({
      start_at: {
          type: Date,
          required: true
      },
      end_at: {
          type: Date,
          required: true
      },
      vehicle: {
          type: Schema.Types.ObjectId,
          ref: 'Vehicle'
      },
      amount:{
          type:Number,
          required:true
      },
  });
  export default mongoose.model('Promotion', PromotionSchema);
  </code></pre>
  
  <p>every <code>vehicle</code> have multi <code>Promotion</code> and one of Promotions is active(<code>start_at</code> less then <code>Date.now</code> and <code>end_at</code> greater then <code>Date.now</code>)</p>
  
  <p>1- i need to get all Vehicles with one Promotion(that now active) and sort its by <code>start_at</code> </p>
  
  <p>2- is it possible to add virtual field with name <code>is_promotion</code> and set it to true if have active Promotion?</p>
  
  <p>note: It is possible that some <code>Vehicle</code> do not have any <code>Promotion</code></p>