как обновить объект с помощью mongoose, когда некоторые объекты в таблице не имеют определенного идентификатора поиска

#node.js #mongodb #mongoose

#node.js #mongodb #mongoose

Вопрос:

У меня есть таблица таких взаимодействий.

    var interactions = new Schema({
   call_Id: {
       type: String,
       index: true
   },
   contact_id: {
       type: String,
       index: true
   },
   msgId: {
      type: String,
      default: null
   },
   interactions: []
 }, {
     timestamps: true,
     strict: false
 })

 module.exports = mongoose.model('interactions', interactions);




 var interactions = require('mongoose').model('interactions');


 exports.updateStatusOfMsg = (req, res) => {


let  id=req.body.messageId;

      interactions.findOneAndUpdate({'msgId': id }, {$set: 
      {status:req.body.status}}, {new: true}, (err, doc) => {
          if (err) {
              console.log("this is error " err);
          }

        console.log("this is doc " doc);
    });
     }
  

проблема в том, что все объекты в таблицах взаимодействий не имеют свойства «msgId». возможно ли, что только те объекты ищут обновление, у которого есть свойство «msgId»?

Ответ №1:

Model.findOneAndUpdate() обновит документ только в случае его обнаружения.
В случае вашей программы вам не нужно беспокоиться о документах, у которых нет msgId атрибута, они не будут найдены.