FindOneAndRemove() फ़ंक्शन अधिक तदनुसार काम करेगा क्योंकि यह फ़िल्टर किए गए ऑब्जेक्ट को निकालने के लिए फ़ंक्शन .findOneAndRemove(filter, options) में पारित फ़िल्टरिंग विधि के लिए विशिष्ट है। फिर भी, यदि हटाने की प्रक्रिया कनेक्शन द्वारा बाधित होती है तो retryRewrites=true कनेक्ट होने पर फ़ंक्शन के निष्पादन का प्रयास करेगा।
अधिक जानकारी यहाँ
जब retryRewrites का उपयोग सही पर सेट किया जाता है, तो MongoDB को उसी प्रक्रिया को फिर से करने के लिए कहता है जो वास्तव में डेटाबेस से विफल कनेक्शन को रोकने और सही ढंग से संचालित करने में मदद कर सकता है, इसलिए इसे चालू करने की अनुशंसा की जाती है।
अधिक जानकारी यहाँ
यदि आप Mongoose 5^ और MongoDB 3.6 का उपयोग कर रहे हैं तो आपका कोड बेहतर लिखा गया है:
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
})
}); ;
});