MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Erreur MongoDB :impossible d'utiliser des écritures réessayables avec limit=0

La fonction findOneAndRemove() fonctionnerait plus en conséquence car elle est spécifique à la méthode de filtrage transmise dans la fonction .findOneAndRemove(filter, options) pour supprimer l'objet filtré. Néanmoins, si le processus de suppression est interrompu par la connexion, le message retryRewrites=true tentera l'exécution de la fonction lorsqu'il sera connecté.

Plus d'informations ici

Lorsque vous utilisez retryRewrites défini sur true, indique à MongoDB de réessayer le même processus, ce qui peut en fait aider à empêcher les échecs de connexion à la base de données et à fonctionner correctement, il est donc recommandé de l'activer.

Plus d'infos ici

Si vous utilisez Mongoose 5^ et MongoDB 3.6, votre code est mieux écrit comme :

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