我有一个这样的模型:
猫鼬模式
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 !');
}
});
所以我试图实现一个不允许重复的帖子功能,所以我在updateOne中找到了{upsert:true}。直到我不得不拨打电话以过滤掉一些数据之前,这一直很好。所以我得到了一批数据,而我只想获取适合模型的数据。
但是由于不是在模型中定义了所有内容,所以出现了StrictMode错误。而当我禁用strictMode时,我会获得甚至在模型中未定义的所有数据。
此事件的证据
如您在此处看到的,未定义isCommentable,islikable和liked。而且我知道这是因为我放了{strict:false},但是如果我不添加它,则不会添加任何数据,并且会出现以下错误:
{StrictModeError:路径“ updateType”不在架构中,严格模式为
true
,upsert为true
。
所以我想知道如何在不向模型添加任何内容或使用{strict:false}的情况下解决此问题。
希望任何人都可以帮助我,还有其他必要的信息:将其命名,我将对其进行编辑。