Трябва да го направите в две стъпки; първо попълване на survey
и след това попълване на survey.user
използвайки отделно извикване на Model.populate
:
questions.findOne({_id: '0000'})
.populate('survey')
.exec(function(err, question) {
questions.populate(
question,
{ path: 'survey.user', model: 'User'},
function(err, question) {...});
});