Has ido demasiado profundo con ese comodín $
. Coincide con un elemento en los Fields
matriz, por lo que obtiene acceso a eso, con:Fields.$
. Esta expresión devuelve la primera coincidencia en sus Fields
matriz, por lo que llega a sus campos por Fields.$.Field
o Fields.$.Result
.
Ahora, actualicemos la update
:
db.test.update({
"Fields.Field": "Lot No"
}, {
$addToSet: {
"Fields.$.Rules": {
'item_name': "my_item_two",
'price':1
}
}
}, false, true);
Tenga en cuenta que he acortado la query
ya que es igual a su expresión.