javascript mongoose получить значение индекса массива arrayFilter и использовать в качестве значения - PullRequest
1 голос
/ 10 июля 2019

Я хочу обновить поле с помощью переменной 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

Некоторые могут сказать, что лучше всего использовать метод поиска и сохранения внутри обновления, но я смотрю на способ уменьшения звонка на сервер.

Это (как я считаю) сделает программу более эффективной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...