Какая разница между самим объектом document и объектом, получаемым из свойства _doc этого объекта? В логах выводит тоже самое, разве что порядок свойств в объекте меняется. Тем не менее, в коде, который я разбираю, для создания json-веб-токена используется именно вариант с _doc.
User.findOne({username: request.body.username}, (error, document) => {
console.log(document._doc)
console.log(document);
token = jwt.sign(document._doc, config.secret);