Fungsi findOneAndRemove() akan bekerja lebih sesuai karena spesifik untuk metode pemfilteran diteruskan dalam fungsi .findOneAndRemove(filter, options) untuk menghapus objek yang difilter. Namun, jika proses penghapusan terganggu oleh koneksi retryRewrites=true akan mencoba menjalankan fungsi saat terhubung.
Informasi lebih lanjut di sini
Saat menggunakan retryRewrites set to true memberitahu MongoDB untuk mencoba kembali proses yang sama yang sebenarnya dapat membantu mencegah koneksi yang gagal ke database dan beroperasi dengan benar, jadi disarankan untuk mengaktifkannya.
Info lebih lanjut di sini
Jika Anda menggunakan Mongoose 5^ dan MongoDB 3.6 kode Anda lebih baik ditulis seperti:
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
})
}); ;
});