Мне нужна помощь
У меня много путаницы с использованием мангустов для контроля результатов запроса.
Результатом запроса Mongoose иногда является плоский объект js, а иногда - объект mongoose.
Я хочу показать свою путаницу в коде.
(async function (){
try{
const user1 = await User.findOne()
console.log(user1.constructor) // => mongoose Object => read only
const user2 = await User.findOne().lean()
console.log(user2.constructor) // => javascript Object => readable and writable
const users3 = await User.find()
console.log(users3.constructor) // => javascript Object => readable and writable
//Why javascript object ? Despite not using lean()func
const user4 = await new User({
memberType : 'local',
id : 'myId',
nick : 'myNick',
isAdmin : false,
joinDate : new Date().toISOString(),
sex : 'm'
})
.save()
console.log(user4.constructor) // => mongoose Object => read only
const user5 = await new User({
memberType : 'local',
id : 'myId',
nick : 'myNick',
isAdmin : false,
joinDate : new Date().toISOString(),
sex : 'm'
})
.save()
.lean()
//TypeError: (intermediate value).save(...).lean is not a function
}
catch(err){
console.log(err)
}
})()
итак .. мои вопросы ...
1) почему users3.constructor является плоским javascript-объектом? несмотря на то, что не использовать lean ()
2) как сделать объект mongoose user4 (сохранить результат) в плоскости javascript?
(В случае user4, lean имеет ошибку.)
Я был бы очень признателен, если бы вы могли ответить.
хорошего дня:)