S tím zástupným znakem $
jste zašli příliš hluboko . Shodujete se s položkou v Fields
pole, takže k tomu získáte přístup pomocí:Fields.$
. Tento výraz vrátí první shodu ve vašich Fields
pole, takže jeho pole dosáhnete pomocí Fields.$.Field
nebo Fields.$.Result
.
Nyní pojďme aktualizovat update
:
db.test.update({
"Fields.Field": "Lot No"
}, {
$addToSet: {
"Fields.$.Rules": {
'item_name': "my_item_two",
'price':1
}
}
}, false, true);
Vezměte prosím na vědomí, že jsem zkrátil query
protože se rovná vašemu výrazu.