{'index': 0, 'code': 2, 'errmsg': "Не найден фильтр массива для идентификатора 'i' в пути 'Comments.$[i].Replies.$[j].Reply'"}

введите описание изображения здесь

WriteError: Не найден фильтр массива для идентификатора 'i' в пути 'Comments.$[i].Replies.$[j].Reply', полная ошибка: {'index': 0, 'code': 2, 'errmsg': "Не найден фильтр массива для идентификатора 'i' в пути 'Comments.$[i].Replies.$[j].Reply'"}

Я просто хочу обновить ответ в моих данных. Я получаю эту ошибку. Есть ли другой способ обновления? Если да. Тогда, пожалуйста, ответьте. Спасибо.

Code

article_id = "6223bf189ee543673ca35940"
comment_id = "2d1ae2a7-1488-44b0-8ba3-9e946ed8cca9"
reply_id = "c0b9d54a-416f-4598-bf7b-33be80faa5c3"


article_collection.update_one({'_id': ObjectId(article_id)}, 
            {
                '$set': {'Comments.$[i].Replies.$[j].Reply': reply},
                'arrayFilters': [{'i.ID': comment_id}, {'j.ID': reply_id}]
            }, upsert=False)

Data

{
"_id" : ObjectId("6223bf189ee543673ca35940"),
"Comments" : [ 
    {
        "ID" : "2d1ae2a7-1488-44b0-8ba3-9e946ed8cca9",
        "User_id" : 1,
        "Comment" : "Thank you for this simple explanation.",
        "Date" : ISODate("2022-03-13T02:13:09.022Z"),
        "Replies" : [ 
            {
                "ID" : "c0b9d54a-416f-4598-bf7b-33be80faa5c3",
                "User_id" : 1,
                "Reply" : "You're welcome",
                "Date" : ISODate("2022-03-13T12:53:39.046Z")
            }
        ]
    }
]

}

Может ли кто-нибудь помочь мне с этим вопросом.

Сообщение об ошибке правильно предполагает, что arrayFilters не найдены. У вас синтаксическая ошибка, arrayFilters должны быть добавлены в секцию options вашего запроса обновления, в настоящее время находится в секции обновления:

Update({query},{update},{options})

Вернуться на верх