sql >> Database >  >> NoSQL >> MongoDB

MongoDB-fout:kan geen herschrijfbare schrijfbewerkingen gebruiken met limiet =0

De functie findOneAndRemove() zou meer dienovereenkomstig werken, omdat deze specifiek is voor de filtermethode die is doorgegeven in de functie .findOneAndRemove(filter, options) om het gefilterde object te verwijderen. Als het verwijderingsproces echter wordt onderbroken door de verbinding, wordt de retryRewrites=true zal proberen de functie uit te voeren wanneer deze is aangesloten.

Meer informatie hier

Bij gebruik van retryRewrites ingesteld op true vertelt de MongoDB hetzelfde proces opnieuw te proberen, wat in feite kan helpen om mislukte verbindingen met de database te voorkomen en correct te werken, dus het wordt aanbevolen om het in te schakelen.

Meer info hier

Als u Mongoose 5^ en MongoDB 3.6 gebruikt, is uw code beter geschreven als:

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


  1. Getypte transacties opnieuw weergeven

  2. Hoe selderijtaak pauzeren of hervatten?

  3. MongoDB - Een database maken

  4. De standaard beloftebibliotheek van Mongoose is verouderd in MEAN-stack