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.
Какую версию Mongoose вы используете? – piemonkey
Оказывается, у меня была ошибка типа данных, которая вызывает это. @piemonkey –