push()
операция будет добавлять данные, я знаю.Но я сталкиваюсь со странной проблемой.У меня очень простой и понятный скрипт PHP.Он получает JSON, основываясь на нем, он ищет запись в MongoDB и затем обновляет определенное место.
Это мой JSON MongoDB:
{
"_id": "5d246a404ddb5c24231eb3f2",
"series_id": "GY5VKE9EY",
"episodes": {
"3x": {
"My First Title": [
{
"offsetLeft": 157,
"offsetTop": -1,
"episode_number": "50"
}
]
}
}
}
Теперь я хочу добавитьновая запись в ключе My First Title
.У меня есть этот JSON, который я хочу добавить.
{
"offsetLeft": 157,
"offsetTop": -1,
"episode_number": "50"
}
Сценарий, который я написал, когда я даю ему этот JSON, говорит, что документ обновлен.Однако он никогда не обновлялся, когда я регистрировался в БД.
Вот мой PHP-код:
try{
$encoded_json = json_encode($final_array_to_update);
$internal_json = array("episodes" => array($key_value => $encoded_json));
$collection->updateOne(
array("_id" => $_id),
array('$push' => $internal_json)
);
echo "Updated The Document.";
}
catch (Exception $ex)
{
echo $ex;
}
Кроме того, по какой-то странной причине теперь ошибка изменилась на:
BulkWriteException: The field 'episodes' must be an array but is of type object in document
Я не уверен, в чем проблема.Может ли кто-нибудь помочь мне с этим.