Si vous souhaitez mettre à jour un élément dans un tableau, vous pouvez envisager le opérateur positionnel : $ et ajoutez le champ à votre requête de mise à jour.
Cela identifie un élément dans un tableau à mettre à jour en fonction d'une condition.
Exemple pour mettre à jour le tableau embarqué avec un volume
champ égal à 100 et défini sur 200 :
db.getCollection("collection").findOneAndUpdate({
id: 1,
"data.volume": 100
},
{ $set: { "data.$.volume": 200 }
});