Mongoose arrayFilters不接受变量值

时间:2017-11-02 10:47:59

标签: arrays node.js mongodb mongoose mongoose-populate

大家好,希望大家都好。我是使用Mongoose NodeJS的新手。我想在嵌套数组中推送一个新元素。但是我不知道匹配文档数组的索引。要在匹配文档中推送新元素,我在下面给出了查询。但是,查询不接受外部和内部值而不更新文档。

var outer = 0; 
var inner = 1;

vehicle.update({
     ID: data[0],
     "Trip.Name": data[1],
     "Trip.Data.Time": data[2]
},
{
     $push: {
          "Trip.$[i].Data.$[j].Values": { $each: data[3] }
     }
},
{
     "arrayFilters": [{ i: outer }, { j: inner }]
}, 
function(err, result){
     if(err){
          console.log(err);
     } else {
          console.log(result);
     }
})

结果:

{ ok: 0, n: 0, nModified: 0 }

它必须在数组中推送新值,因为值存在于 Trip_Details.0.TripData.1.Values和如果用0和1直接替换$ [i]和$ [j],则更新文档。但是当我把它作为变量传递然后没有被修改。

0 个答案:

没有答案