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',
},
})
Этот код возвращает объект экспедиции без каких-либо обновлений. Никаких обновлений в базе тоже нет. Замечательно, если бы кто-нибудь мог мне с этим помочь.