MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Errore MongoDB:impossibile utilizzare scritture riprovabili con limit=0

La funzione findOneAndRemove() funzionerebbe in modo più appropriato poiché è specifica per il metodo di filtraggio passato nella funzione .findOneAndRemove(filter, options) per rimuovere l'oggetto filtrato. Tuttavia, se il processo di rimozione viene interrotto dalla connessione, retryRewrites=true tenterà di eseguire la funzione una volta connesso.

Maggiori informazioni qui

Quando si utilizza retryRewrites, l'impostazione su true indica a MongoDB di riprovare lo stesso processo, il che in effetti può aiutare a prevenire connessioni non riuscite al database e a funzionare correttamente, quindi si consiglia di accenderlo.

Maggiori informazioni qui

Se stai usando Mongoose 5^ e MongoDB 3.6, il tuo codice è meglio scritto come:

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