si j'ai bien compris votre question, vous voulez faire correspondre name
champ avec we
clé et mettre à jour arr
seulement s'il existe ?, il faut utiliser elemMatch, en autre pour obtenir le bon document
db.test.update({ list: { $elemMatch: { name: "We" , arr: { $nin: [ "valuette" ] }} } }, { $push: { "list.$.arr": "valuette" } } );
le $
dans "list.$.arr" correspond à l'index spécifié qui correspond à name
champ avec we
valeur
mise à jour :pour répondre à la question OP