Você precisa fazer isso em duas etapas; primeiro preenchimento da
survey
e, em seguida, preenchendo survey.user
usando uma chamada separada para Model.populate
:questions.findOne({_id: '0000'})
.populate('survey')
.exec(function(err, question) {
questions.populate(
question,
{ path: 'survey.user', model: 'User'},
function(err, question) {...});
});