Você foi muito profundo com esse curinga
$
. Você corresponde a um item nos Fields
array, então você tem acesso a isso, com:Fields.$
. Esta expressão retorna a primeira correspondência em seus Fields
array, então você alcança seus campos por Fields.$.Field
ou Fields.$.Result
. Agora, vamos atualizar o
update
:db.test.update({
"Fields.Field": "Lot No"
}, {
$addToSet: {
"Fields.$.Rules": {
'item_name': "my_item_two",
'price':1
}
}
}, false, true);
Observe que reduzi a
query
pois é igual à sua expressão.