javascript mongoose获取arrayFilter数组索引的值并用作值

javascript mongoose获取arrayFilter数组索引的值并用作值,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我想用arrayfilter变量更新一个字段,这就是我到目前为止所做的 var items='green shirt' Model.update({ id: 7c59453a6194a90217defc70 },{ {$set:{ 'arrayname.$[firstArray].field1':'my new name', 'arrayname.$[firstArray].field2':'myusername' 'arrayn

我想用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
有人可能会说最好的方法是在更新中使用find-and-save方法,但我正在研究 一种减少对服务器调用的方法

这将(正如我所相信的)使该计划更有效率