Я хочу обновить поле с помощью переменной arrayfilter. Это то, что я сделал до сих пор.
var items='green shirt'
Model.update({
id: 7c59453a6194a90217defc70
},{
{$set:{
'arrayname.$[firstArray].field1':'my new name',
'arrayname.$[firstArray].field2':'myusername'
'arrayname.$[firstArray].field3':[items+[arrayname.$[firstArray].field4]]
},
arrayFilters:[{"firstArray._id":7c59453a6194a90217defc70}],
new:true, safe:false}},
function(err, update){
if(err){}
else{}
})
Используя arrayFilter, я смогу получить конкретный массив, над которым я хочу работать.
Теперь моя логика заключается в том, что arrayFilter получит индекс определенного элемента и сделает его
доступно в выражении $ set.
Как я могу получить arrayIndex и использовать его в качестве переменной для значения. как указано в поле 3 выше
'arrayname.$[firstArray].field3':[items+[**arrayname.$[firstArray].field4**]]
This produced an error arrayname is undefined
Некоторые другие, которые я пробовал
1. 'arrayname.$[firstArray].field3':[items+[`**arrayname.$[firstArray].field4**`]]
It was inserted into the data as a string
Некоторые могут сказать, что лучше всего использовать метод поиска и сохранения внутри обновления, но я смотрю на
способ уменьшения звонка на сервер.
Это (как я считаю) сделает программу более эффективной