Mongoosejs virtual populate
Figured out what the problem was. By default, the virtual fields are not included in the output. After adding this in circle schema:
circleSchema.virtual('caregiver_details',{
ref: 'caregiver',
localField: 'caregivers',
foreignField: 'userId'
});
circleSchema.set('toObject', { virtuals: true });
circleSchema.set('toJSON', { virtuals: true });
It now works perfectly.
If you use expressJs res.json method it's ehough to add only:
yourSchema.set('toJSON', { virtuals: true });
Or you can directly use toJSON/toObject:
doc.toObject({ virtuals: true })) // or doc.toJSON({ virtuals: true }))