MongoDB
 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Извадете поддокументите от колекцията в сборния конвейер

  2. MongoDB - Грешка:документът трябва да има _id преди запазване

  3. Препратки срещу вграждания в MongoDB

  4. Как да вмъкна елемент във вътрешния списък на MongoDB?

  5. Създаване на кратки, уникални идентификатори на обекти в MongoDB