sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB-fel:Kan inte använda omprövningsbara skrivningar med limit=0

FindOneAndRemove()-funktionen skulle fungera mer därefter eftersom den är specifik för den filtreringsmetod som skickas i funktionen .findOneAndRemove(filter, options) för att ta bort det filtrerade objektet. Men om borttagningsprocessen avbryts av anslutningen är retryRewrites=true kommer att försöka köra funktionen när den är ansluten.

Mer information här

När du använder retryRewrites inställd på sant, uppmanar MongoDB att försöka igen med samma process igen, vilket i själva verket kan hjälpa till att förhindra misslyckade anslutningar till databasen och fungera korrekt, så det rekommenderas att den slås på.

Mer information här

Om du använder Mongoose 5^ och MongoDB 3.6 är din kod bättre skriven som:

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. Hur man använder ny URL från mongodb 3.6 för att ansluta från golang

  2. Hur kan jag lova MongoDBs inbyggda Javascript-drivrutin med bluebird?

  3. Hur gör man råa mongodb-operationer i mongoose?

  4. MongoDB C#:ID Serialization bästa mönstret