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