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

$ mongoDBのプロジェクションfindOneAndUpdate()

    問題はnew: trueにありました

    実例は次のとおりです:

    Campaign.findOneAndUpdate({'isEnabled': true,  'clients.contact_status_code': 0}, {
                '$set': { 'clients.$.contact_status_code': 1 },
            },
            {
                //new: true <-- this was causing the trouble
                projection: {
                    clients: {
                        '$elemMatch': {contact_status_code: 0}, // 0 because the old record gets matched
                    },
                },
            },
            (err, campaign) => {
                if (err) {
                    return res.send(err);
                }
    
                res.json(campaign);
            }
        );
    

    new:true が設定されると、mongoは一致するコンテキストを失います。このアプローチでは、残念ながら古いレコードが返されますが、それでも_idを取得する必要があります。



    1. PHPMongoDB-カーソルオプションなしでのaggregateコマンドの使用は非推奨になりました。何?

    2. シェルスクリプトを介してmongoコマンドを実行する方法は?

    3. 管理者にlistDatabasesコマンドの実行を許可されていないMongodb

    4. mongoシェルからファイルを読み取る