Wenn ich Ihre Frage richtig verstanden habe, möchten Sie mit name übereinstimmen Feld mit we Schlüssel und aktualisieren Sie arr nur wenn es existiert ?, müssen Sie elemMatch verwenden, andernfalls erhalten Sie das richtige Dokument
db.test.update({ list: { $elemMatch: { name: "We" , arr: { $nin: [ "valuette" ] }} } }, { $push: { "list.$.arr": "valuette" } } );
das $ in "list.$.arr" stimmt mit dem angegebenen Index überein, der mit name übereinstimmt Feld mit we Wert
Update:um die OP-Frage zu beantworten