Je bent te diep gegaan met dat jokerteken $
. Je komt overeen voor een item in de Fields
array, zodat je daar toegang toe krijgt, met:Fields.$
. Deze uitdrukking retourneert de eerste overeenkomst in uw Fields
array, zodat u de velden bereikt via Fields.$.Field
of Fields.$.Result
.
Laten we nu de update
updaten :
db.test.update({
"Fields.Field": "Lot No"
}, {
$addToSet: {
"Fields.$.Rules": {
'item_name': "my_item_two",
'price':1
}
}
}, false, true);
Houd er rekening mee dat ik de query
heb ingekort omdat het gelijk is aan jouw uitdrukking.