sql >> Base de Datos >  >> NoSQL >> MongoDB

Error de MongoDB:no se pueden usar escrituras reintentables con límite =0

La función findOneAndRemove() funcionaría más en consecuencia, ya que es específica del método de filtrado pasado en la función .findOneAndRemove(filtro, opciones) para eliminar el objeto filtrado. Aún así, si el proceso de eliminación es interrumpido por la conexión, retryRewrites=true intentará la ejecución de la función cuando esté conectado.

Más información aquí

Cuando se usa retryRewrites establecido en verdadero, le dice a MongoDB que vuelva a intentar el mismo proceso nuevamente, lo que de hecho puede ayudar a evitar conexiones fallidas a la base de datos y operar correctamente, por lo que se recomienda activarlo.

Más información aquí

Si está utilizando Mongoose 5^ y MongoDB 3.6, su código está mejor escrito como:

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
        })
    }); ;
});