Пример структуры документа:
{
"dob": "12-13-2001",
"name": "Kam",
"visits": {
"0": {
"service_date": "12-5-2011",
"payment": "40",
"chk_number": "1234455",
},
"1": {
"service_date": "12-15-2011",
"payment": "45",
"chk_number": "3461234",
},
"2": {
"service_date": "12-25-2011",
"payment": "25",
"chk_number": "9821234",
}
}
}
Я пытаюсь обновить только "платеж" в посещении - 2 и номер chk_number в посещении - 1, используя следующее:
$query_criteria = array("name" => "Kam", "dob" => "12-13-2001");
$updated_data = array();
$updated_data['visits'][1]['chk_number'] = 567;
$updated_data['visits'][2]['payment'] = 100;
$ret = $collection->update( $query_criteria, array('$set' => $updated_data), array("safe" => true) );
Но это обновление удаляет все посещения и перезаписывает их посетителями, содержащими только оплату и chk_number.
Я новичок в mongodb и PHP.Может кто-нибудь, пожалуйста, укажите мне, что я делаю неправильно и как решить эту проблему.
Заранее большое спасибо ........