sql >> データベース >  >> NoSQL >> MongoDB

MongoDBエラー:limit=0で再試行可能な書き込みを使用できません

    findOneAndRemove()関数は、関数.findOneAndRemove(filter、options)で渡されたフィルター処理メソッドに固有であるため、フィルター処理されたオブジェクトを削除するため、より適切に機能します。それでも、接続によって削除プロセスが中断された場合は、 retryRewrites =true 接続時に関数の実行を試みます。

    詳細はこちら

    tryRewritesをtrueに設定して使用する場合、MongoDBに同じプロセスを再試行するように指示します。これにより、データベースへの接続の失敗を防ぎ、正しく動作することができるため、オンにすることをお勧めします。

    詳細はこちら

    Mongoose 5^とMongoDB3.6を使用している場合、コードは次のように記述した方が適切です。

    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. MongoDBでSpringBootを使用する方法

    2. MongoDBのテストデータの作成

    3. MongoDB-複数の$or操作

    4. PyMongoを使用して重複キーエラーの後に挿入を続行する方法