#node.js #mongodb #express #mongoose #mongoose-schema
Вопрос:
const articleSchema = new mongoose.Schema({
title:String,
ques:String,
ans:String,
details:[
{
author:String,
employeeId:Number,
age:Number,
gmailId:String
} ]
});
const Article = mongoose.model("Article", articleSchema);
Я хочу , чтобы ,если два документа имеют одинаковое значение «заголовок», затем вставьте данные второго документа(игнорируя заголовок, вопросы, ответы ) ( только детали) в первый.
Если нет, то пусть он сохранится как другой документ.
Ниже приводится его реализация…
app.post("postDocument",function(req,res){
const obj= {
author:req.body.author,
employeeId:req.body.employeeId,
age:req.body.age,
gmailId:req.body.gmailId
};
Article.updateOne({title:req.body.title},
{ title:req.body.title,
ques:req.body.ques,
ans:req.body.ans,
$push:{details:obj}
},
function(err,foundarticles){
if(!err)
{
res.send("updated successfully");
}
else
{
createnewArticle();
}
});
function createnewArticle(){
const newArticle = new Article({
title:req.body.title,
ques:req.body.ques,
ans:req.body.ans,
details:[
obj
]
});
newArticle.save();
})
Я беру данные из формы и в теле сообщения проверяю, существует ли значение заголовка . Если он существует , вставьте массив сведений в существующий документ .
Если нет, то создайте документ и сохраните.