FindOneAndRemove()-funktionen ville fungere mere i overensstemmelse hermed, da den er specifik for den filtreringsmetode, der er sendt i funktionen .findOneAndRemove(filter, optioner) for at fjerne det filtrerede objekt. Alligevel, hvis fjernelsesprocessen afbrydes af forbindelsen, er retryRewrites=true vil forsøge at udføre funktionen, når den er tilsluttet.
Mere information her
Når du bruger retryRewrites indstillet til sand, beder MongoDB om at prøve den samme proces igen, hvilket faktisk kan hjælpe med at forhindre mislykkede forbindelser til databasen og fungere korrekt, så det anbefales at have den tændt.
Mere info her
Hvis du bruger Mongoose 5^ og MongoDB 3.6, er din kode bedre skrevet som:
mongoose.connect('mongodb.....mongodb.net/test?retryWrites=true', (err) => {
if(err){
console.log("Could not connect to MongoDB (DATA CENTER) ");
}else{
console.log("DATA CENTER - Connected")
}
});// CONNECTING TO MONGODB v. 3.6
router.delete('/:productId', (req, res, next) => {
const id = req.params.productId;
Product.findOneAndRemove({ _id: id })//updated function from .remove()
.exec()
.then(result => {
res.status(200).json({
message: "Product Removed Successfuly"
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
})
}); ;
});