28 PathNotViable: Cannot use the part of the path to traverse the element
MongoDBЧто это значит?
Обновление попыталось пройти по пути поля с точками (например, a.b.c), но часть пути наткнулась на тип, который не может содержать подполя (скалярное значение или элемент неверного типа). Поэтому пройти по пути не удалось.
Почему возникает?
Запись во вложенный путь, такой как a.b.c, когда поле 'a' в документе является скаляром (например, числом/строкой), а не объектом/массивом; либо несоответствие типов, например объект там, где ожидается индекс массива. Часто встречается в документах с несогласованной схемой (при обновлении глубоких путей через $set).
Как исправить
Перед обновлением убедитесь, что путь имеет ожидаемый тип (объект/массив). Исправьте несовместимые документы или сделайте обновление зависимым от структуры документа. При необходимости сначала преобразуйте поле в правильный тип (например, замените скалярное значение объектом), затем запишите вложенное поле. Для согласованности схемы рассмотрите проверку схемы (schema validation).
Ещё по этой СУБД
- 175 QueryPlanKilledQuery plan killed during execution
- 11602 InterruptedDueToReplStateChangeOperation interrupted due to a replication state change
- 136 CappedPositionLostCapped collection position lost
- 216 ElectionInProgressElectionInProgress
- 225 TransactionTooOldTransactionTooOld
- 246 SnapshotUnavailableSnapshotUnavailable
- 257 TransactionTooLargeTransactionTooLarge