У меня есть такая модель:
Схема мангуста
var LinkedinUpdateSchema = new mongoose.Schema({
likes:{values:[PersonSchema],
_total: Number},
numLikes: Number,
timestamp: Number,
updateComments:{
values:[CommentSchema],
_total: Number
},
updateContent:{
companyStatusUpdate:{
share:{
comment: String,
timestamp: Number
}
}
},
});
Маршрутизатор
router.post('/:type',function(req,res,next){
if(cutFilename.includes(req.params.type)){
var object = require('./models/'+req.params.type);
object.UpdateOne(req.body,req.body,{upsert:true,strict:false},function(err,object){
if(err) console.log(err)
res.json(object);
})
}else{
res.json('error: type: '+ req.params.type + 'not found !');
}
});
такя пытаюсь получить функцию записи, которая не допускает дублирование, и поэтому я нашел {upsert: true} в updateOne.это работало отлично, пока я не должен был сделать звонок, который отфильтровывает некоторые данные.поэтому я получаю пакет данных и хочу получить только те данные, которые соответствуют модели.
, но из-за того, что не все определено в модели, я получаю ошибку StrictMode.и когда я отключаю строгий режим, я получаю все данные, которые даже не были определены в модели.
свидетельство этого происшествия
Как вы можете видеть здесь, isCommentable, islikable и isliked был добавлен без определения.и я знаю, что это потому, что я поставил {strict: false}, но если я не добавляю это, никакие данные не добавляются, и я получаю следующую ошибку:
{StrictModeError: Путь "updateType"не в схеме, строгий режим - true
, а upsert - true
.
, поэтому мне было интересно, как я могу это исправить, не добавляя ничего в мою модель или используя {strict: false},
Надеюсь, кто-нибудь может мне помочь с этим, больше информации, которая необходима: назовите ее, и я отредактирую ее.