Mongoose - обновить несколько полей во вложенном массиве

У меня есть объект ниже.

      {
  _id:ObjectId(6082adfaeced28382c167bd7),
  inviteMountaineers:
  [{
    _id: ObjectId(6082c4f9dcfaa86794601058),
    userId:ObjectId(60829eb5f1d2c316dfd79cd8),
    status:"Invited"
  }.{
    _id: ObjectId(6082c4f9dcfaa86794601055),
    userId:ObjectId(60829eb5f1d2c316dfd79cd5),
    status:"Invited"
  }]
}

Я хочу обновить статус приглашенных альпинистов и попытался использовать приведенный ниже код.

       const expedition = await Expedition.findOneAndUpdate(
  {
    _id: expeditionId,
    inviteMountaineers: {
      $elemMatch: { userId: mongoose.Types.ObjectId(userId) },
    },
  },
  { useFindAndModify: false },
  { $set: {
            'inviteMountaineers.$.status': status, 
            'inviteMountaineers.$.paidStatus': paidStatus,
            'inviteMountaineers.$.paidAmount': amount, 
          }
  }
).populate({
  path: 'inviteMountaineers',
  populate: {
    path: 'userId',
    model: 'User',
  },
})

Этот код возвращает объект экспедиции без каких-либо обновлений. Никаких обновлений в базе тоже нет. Замечательно, если бы кто-нибудь мог мне с этим помочь.

0 ответов

Другие вопросы по тегам