Puoi usare l'attributo path per il deep linking, questo funzionerebbe anche per i tipi Array.
documentId: { type: mongoose.ObjectId, ref: 'Media' },
schema.virtual('educationDocument', {
ref: 'Media', // the collection/model name
localField: 'education.documentId',
foreignField: '_id',
justOne: true, // default is false });
const users = await User.find({})
.populate({ path: 'educationDocument' })
.populate({ path: 'experienceDocument' })
.populate({ path: 'certificationDocument' })
.execPopulate()