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