findoneandupdate 和重复错误 11000
findoneandupdate and duplicate error 11000
你好我有一个问题运行我的代码因为它说 E11000 重复键错误收集
router.put('/:city/edit',isAdminCheck, async function(req,res){
var query = req.params.city;
var update = {region:req.body.region,country:req.body.country,image:req.body.image,flag:req.body.flag,languages:req.body.languages,currencies:req.body.currencies,city:req.body.city};
CityList.findOneAndUpdate(query,update,{upsert:true}, function(error){
if(error){
if(error.code === 11000){
CityList.findOneAndUpdate(query,update,{upsert:true}, function(error){
if(error){
console.log(error);
}else{
res.redirect("/" + req.params.cty);
}
})
}
}else{
res.redirect("/" + req.params.city);
}
})
});
您的查询不正确。应该是这个
var query = {city: req.params.city};
并且您正在执行两次相同的更新。你应该只调用一次。
CityList.findOneAndUpdate(query,update,{upsert:true}, function(error){
if(error){
// handle error
}
}else{
res.redirect("/" + req.params.city);
}
})
你好我有一个问题运行我的代码因为它说 E11000 重复键错误收集
router.put('/:city/edit',isAdminCheck, async function(req,res){
var query = req.params.city;
var update = {region:req.body.region,country:req.body.country,image:req.body.image,flag:req.body.flag,languages:req.body.languages,currencies:req.body.currencies,city:req.body.city};
CityList.findOneAndUpdate(query,update,{upsert:true}, function(error){
if(error){
if(error.code === 11000){
CityList.findOneAndUpdate(query,update,{upsert:true}, function(error){
if(error){
console.log(error);
}else{
res.redirect("/" + req.params.cty);
}
})
}
}else{
res.redirect("/" + req.params.city);
}
})
});
您的查询不正确。应该是这个
var query = {city: req.params.city};
并且您正在执行两次相同的更新。你应该只调用一次。
CityList.findOneAndUpdate(query,update,{upsert:true}, function(error){
if(error){
// handle error
}
}else{
res.redirect("/" + req.params.city);
}
})