{'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})