Я пытаюсь выполнить следующий запрос:
db.getCollection("item").update({},
{
"$set":{"questions.optional.$[].items.$[item_field].name":"immediately"}
},
{
"arrayFilters":
[
{"item_field.id": "5bf3c907449f4978200dd581"}
],
multi: true
}
)
Но в результате я получаю следующую ошибку:
"Error parsing array filter :: caused by :: The top-level field name must be an alphanumeric string beginning with a lowercase letter, found 'items_field'"
Это упрощенная версия документа:
{
"_id": ObjectId("12345678"),
"questions": {
"mandatory": [
{
"name": "question name",
"mandatory": true,
"items": [
{
"id": 1,
"name": "option1 value"
}
]
}
],
"optional": [
{
"name": "question name",
"mandatory": false,
"items": [
{
"id": 4,
"name": "option4 value"
}
]
}
]
}
}
Что означает эта ошибка? Как я могу избежать этого?