Стигнахте твърде дълбоко с този заместващ знак $
. Съвпадате за елемент в Fields
масив, така че получавате достъп до него с:Fields.$
. Този израз връща първото съвпадение във вашите Fields
масив, така че достигате до неговите полета чрез Fields.$.Field
или Fields.$.Result
.
Сега нека актуализираме update
:
db.test.update({
"Fields.Field": "Lot No"
}, {
$addToSet: {
"Fields.$.Rules": {
'item_name': "my_item_two",
'price':1
}
}
}, false, true);
Моля, обърнете внимание, че съкратих query
тъй като е равен на вашия израз.