Как исправить ошибку строгого режима Мангуста на updateOne? - PullRequest
0 голосов
/ 08 октября 2018

У меня есть такая модель:

Схема мангуста

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.и когда я отключаю строгий режим, я получаю все данные, которые даже не были определены в модели.

свидетельство этого происшествия

enter image description here

Как вы можете видеть здесь, isCommentable, islikable и isliked был добавлен без определения.и я знаю, что это потому, что я поставил {strict: false}, но если я не добавляю это, никакие данные не добавляются, и я получаю следующую ошибку:

{StrictModeError: Путь "updateType"не в схеме, строгий режим - true, а upsert - true.

, поэтому мне было интересно, как я могу это исправить, не добавляя ничего в мою модель или используя {strict: false},

Надеюсь, кто-нибудь может мне помочь с этим, больше информации, которая необходима: назовите ее, и я отредактирую ее.

...