se ho capito bene la tua domanda, vuoi abbinare name campo con we chiave e aggiorna arr solo se esiste ?, devi usare elemMatch, in altri per ottenere il documento giusto
db.test.update({ list: { $elemMatch: { name: "We" , arr: { $nin: [ "valuette" ] }} } }, { $push: { "list.$.arr": "valuette" } } );
il $ in "list.$.arr" corrisponde all'indice specificato che corrisponde a name campo con we valore
aggiornamento:per rispondere alla domanda OP