sql >> Databasteknik >  >> NoSQL >> MongoDB

$-projektion i mongoDB findOneAndUpdate()

Problemet var med new: true

Här är ett fungerande exempel:

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);
        }
    );

Jag antar, när new: true är inställt förlorar mongo det matchande sammanhanget. Detta tillvägagångssätt returnerar den gamla posten, tyvärr, men det uppfyller fortfarande mina behov för att få _id.



  1. Airflow CROSSSLOT Nycklar i begäran hash inte till samma platsfel med AWS ElastiCache

  2. Finns det något sätt att använda MongoDB-frågeobjekt för att filtrera vanliga JavaScript-matriser?

  3. MongoDB $strLenBytes

  4. hex istället för base64 i BinData() - MongoDB