Я пытаюсь обновить вложенный массив с помощью фильтров массива. Сначала я пытаюсь выполнить запрос обновления фильтра базового массива, скопировал и вставил запрос на обновление из учебника mongodb, но получаю сообщение об ошибке: Ошибка: "Не найден фильтр массива для идентификатора 'elem' в путях 'grades. $ [Elem] .mean' ", и я использую 'db version v4.0.2' и 'версия оболочки MongoDB v4.0.2
Вот мойСведения о коллекции,
{
"_id" : 1,
"grades" : [
{
"grade" : 80,
"mean" : 75,
"std" : 6
},
{
"grade" : 85,
"mean" : 90,
"std" : 4
},
{
"grade" : 85,
"mean" : 85,
"std" : 6
}
]
}
//End of First Record
{
"_id" : 2,
"grades" : [
{
"grade" : 90,
"mean" : 75,
"std" : 6
},
{
"grade" : 87,
"mean" : 90,
"std" : 3
},
{
"grade" : 85,
"mean" : 85,
"std" : 4
}
]
}
//End of Second record
Обновление запроса:
db.getCollection('students2').update(
{ },
{ $set: { "grades.$[elem].mean" : 100 } },
{
multi: true,
arrayFilters: [ { "elem.grade": { $gte: 85 } } ]
}
)
Выдает ошибку: не найден фильтр массива для идентификатора 'elem' в оценках пути. $ [elem] .mean '