代码之家  ›  专栏  ›  技术社区  ›  Lars Hendriks

如何修复updateOne上的mongoose strictmode错误?

  •  0
  • Lars Hendriks  · 技术社区  · 6 年前

    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 !');
      }
    });
    

    所以我试图实现一个不允许重复的post函数,所以我在updateOne中找到了{upsert:true}。在我打电话过滤掉一些数据之前,这一切都很顺利。所以我得到了一批数据,我只想得到符合模型的数据。

    但是因为不是所有的东西都在模型中定义,所以我得到一个严格的模式错误。当我禁用strictMode时,我会得到模型中甚至没有定义的所有数据。

    这件事的证据

    enter image description here

    {StrictModeError:路径“updateType”不在架构中,strict mode为 true ,而upsert是 .

    希望有人能帮我这个,任何信息是必要的:命名它,我将编辑它。

    0 回复  |  直到 6 年前