大家好,希望大家都好。我是使用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],则更新文档。但是当我把它作为变量传递然后没有被修改。