Sie sind mit diesem Platzhalter $
zu tief gegangen . Sie suchen nach einem Artikel in den Fields
Array, also bekommt man Zugriff darauf, mit:Fields.$
. Dieser Ausdruck gibt die erste Übereinstimmung in Ihren Fields
zurück Array, sodass Sie seine Felder über Fields.$.Field
erreichen oder Fields.$.Result
.
Lassen Sie uns nun das update
aktualisieren :
db.test.update({
"Fields.Field": "Lot No"
}, {
$addToSet: {
"Fields.$.Rules": {
'item_name': "my_item_two",
'price':1
}
}
}, false, true);
Bitte beachten Sie, dass ich die query
gekürzt habe wie es Ihrem Ausdruck entspricht.