MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Erro do MongoDB:não é possível usar gravações que podem ser repetidas com limit=0


A função findOneAndRemove() funcionaria mais adequadamente, pois é específica para o método de filtragem passado na função .findOneAndRemove(filter, options) para remover o objeto filtrado. Ainda assim, se o processo de remoção for interrompido pela conexão, o retryRewrites=true tentará a execução da função quando conectado.

Mais informações aqui

Ao usar retryRewrites definido como true, informa ao MongoDB para tentar novamente o mesmo processo novamente, o que de fato pode ajudar a evitar conexões com falha no banco de dados e operar corretamente, portanto, é recomendável ligá-lo.

Mais informações aqui

Se você estiver usando o Mongoose 5^ e o MongoDB 3.6, seu código é melhor escrito como:
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
        })
    }); ;
});