2015-10-29 2 views
2

Я пытаюсь добавить комментарии к этой схеме:Mongoose findOneAndUpdate вернуться к аннулированию ошибка

var CommentSchema = new Schema(
{ 
    ad_id:String, 
    comments: 
    [ 
     { 
      author: String, 
      authorID: Number, 
      posted: Date, 
      text: String, 
      title: String 
     } 
    ] 
} 

Но если ad_id существует я просто хочу, чтобы подтолкнуть новый комментарий к comments в основном создать upsert запрос:

var query = {'ad_id': req.body.data.ad_ID} 
    var doc = {$set:{'ad_id':req.body.data.ad_ID},$push:{'comments':{'author':req.body.data.author,'authorID':req.body.data.uID,'posted':req.body.data.posted 
    ,'text':req.body.data.text, 'title':req.body.data.title}}}; 
    var options = {upsert:true}; 

    Comments.findOneAndUpdate(query,doc,options, function (err, doc) { 
     if(err) { 
      console.log(String(err)); 
      res.send({"foo": String(err)}); 
     } 
     else { 
      console.log((doc)); 
      res.send(doc); 
     } 
    }); 

Но в получить ошибку follwing:

Unable to invalidate a subdocument that has not been added to an array. 
+0

Какую версию Mongoose вы используете? – piemonkey

+0

Оказывается, у меня была ошибка типа данных, которая вызывает это. @piemonkey –

ответ

0

Оказывается, у меня была ошибка типа данных, которая вызывает это. Если кто-либо сталкивается с этим кодом ошибки, убедитесь, что data types соответствует вводу.

Смежные вопросы