Du gik for dybt med det jokertegn $
. Du matcher for et element i Fields
array, så du får adgang til det, med:Fields.$
. Dette udtryk returnerer det første match i dine Fields
array, så du når dets felter med Fields.$.Field
eller Fields.$.Result
.
Lad os nu opdatere update
:
db.test.update({
"Fields.Field": "Lot No"
}, {
$addToSet: {
"Fields.$.Rules": {
'item_name': "my_item_two",
'price':1
}
}
}, false, true);
Bemærk venligst, at jeg har forkortet query
da det er lig med dit udtryk.