Ну, эта проблема не связана с mongoDB и mon goose. Для этого сначала нам нужно понять разницу между нормальной функцией и функциями стрелки в JavaScript.
Обработка «this» отличается в функциях стрелки по сравнению с обычными функциями. Короче говоря, для функций со стрелками привязка этого отсутствует.
В обычных функциях ключевое слово this представляет объект, который вызывает функцию, которая может быть окном, документом, кнопкой или чем-то еще.
В функциях со стрелками ключевое слово this всегда представляет объект, который определил функцию со стрелкой. У них этого нет.
let user = {
name: "Stackoverflow",
myArrowFunc:() => {
console.log("hello " + this.name); // no 'this' binding here
},
myNormalFunc(){
console.log("Welcome to " + this.name); // 'this' binding works here
}
};
user.myArrowFunc(); // Hello undefined
user.myNormalFunc(); // Welcome to Stackoverflow