title: Mongoosejs virtual populate
body: <p>I have a circle model in my project:</p>
  
  <pre><code>var circleSchema = new Schema({
  //circleId: {type: String, unique: true, required: true},
  patientID: {type: Schema.Types.ObjectId, ref: "patient"},
  circleName: String,
  caregivers: [{type: Schema.Types.ObjectId}],
  accessLevel: Schema.Types.Mixed
  });
  
  circleSchema.virtual('caregiver_details',{
      ref: 'caregiver',
      localField: 'caregivers',
      foreignField: 'userId'
  });
  </code></pre>
  
  <p>caregiver schema:</p>
  
  <pre><code>var cargiverSchema = new Schema({
      userId: {type: Schema.ObjectId, unique: true},  //objectId of user document
      detailId: {type: Schema.ObjectId, ref: "contactDetails"},
      facialId: {type: Schema.ObjectId, ref: "facialLibrary"}, //single image will be enough when using AWS rekognition
      circleId: [{type: Schema.Types.ObjectId, ref: "circle"}],           //multiple circles can be present array of object id
  });
  </code></pre>
  
  <p>Sample Object:</p>
  
  <pre><code>{ 
      "_id" : ObjectId("58cf4832a96e0e3d9cec6918"), 
      "patientID" : ObjectId("58fea8ce91f54540c4afa3b4"), 
      "circleName" : "circle1", 
      "caregivers" : [
          ObjectId("58fea81791f54540c4afa3b3"), 
          ObjectId("58fea7ca91f54540c4afa3b2")
      ], 
      "accessLevel" : {
          "location\"" : true, 
          "notes" : false, 
          "vitals" : true
      }
  }
  </code></pre>
  
  <p>I have tried virtual populate for mongoosejs but I am unable to get it to work.
  This seems to be the exact same problem: <a href="https://github.com/Automattic/mongoose/issues/4585" rel="noreferrer">https://github.com/Automattic/mongoose/issues/4585</a></p>
  
  <pre><code>circle.find({"patientID": req.user._id}).populate('caregivers').exec(function(err, items){
          if(err){console.log(err); return next(err) }
          res.json(200,items);
      });
  </code></pre>
  
  <p>I am only getting the object id's in the result. It is not getting populated.</p>