Vấn đề là với new: true
Đây là một ví dụ hoạt động:
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);
}
);
Tôi giả sử, khi new: true
được đặt, mongo mất ngữ cảnh phù hợp. Thật không may, cách tiếp cận này trả về bản ghi cũ, nhưng điều đó vẫn phục vụ nhu cầu của tôi để lấy _id.