MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Błąd MongoDB:nie można użyć wielokrotnego zapisu z limitem=0

Funkcja findOneAndRemove() działałaby bardziej odpowiednio, ponieważ jest specyficzna dla metody filtrowania przekazanej w funkcji .findOneAndRemove(filter, options) w celu usunięcia przefiltrowanego obiektu. Jeśli jednak proces usuwania zostanie przerwany przez połączenie, retryRewrites=true spróbuje wykonać funkcję po połączeniu.

Więcej informacji tutaj

Podczas używania retryRewrites ustawionego na true nakazuje MongoDB ponowną próbę tego samego procesu, co w rzeczywistości może pomóc zapobiec nieudanych połączeniach z bazą danych i działać poprawnie, dlatego zalecane jest jego włączenie.

Więcej informacji tutaj

Jeśli używasz Mongoose 5^ i MongoDB 3.6, Twój kod jest lepiej napisany w następujący sposób:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wstawka partii Mongoose (mongodb)?

  2. Problem dotyczący zapisu MongoDB:3 zastrzeżenia, które musisz znać

  3. Jak zdefiniować metody w modelu Mongoose?

  4. Odświeżanie strony Meteor za pomocą kliknięcia przycisku

  5. Najlepszy sposób na wyszukiwanie pełnotekstowe w MongoDB i Mongoose