Tienes que hacerlo en dos pasos; primero llenando survey
y luego completando survey.user
usando una llamada separada a Model.populate
:
questions.findOne({_id: '0000'})
.populate('survey')
.exec(function(err, question) {
questions.populate(
question,
{ path: 'survey.user', model: 'User'},
function(err, question) {...});
});