У меня есть следующий документ в моей коллекции монго
{"_id":"5a9e97557cf28c1c2d00003d",
"user_id":"avi12",
"name":"Avinash",
"Friends":{
"avi12":{
"From":"avi12",
"To":"chandu",
"Friend_status":"pending",
"Time":1520342869,
"requestid":"s_avi12_first"},
"second_user":{
"From":"avi122",
"To":"chandu2",
"Friend_status":"pending2",
"Time":1520342869,
"requestid":"2s_avi12_first"}
}
}
Я хочу вставить новый объект («Третий пользователь») в друзья объект. Я попробовал следующий код …
$update_friend_send=array(
$user_name=>array(
"From"=>$user_name,
"To"=>$To,
"Friend_status"=>"pending",
"Time"=>time(),
"requestid"=>"s_".$user_name."_".$sender_id
));
$condition = array("_id"=>$realmongoid);
$data = array('$set' => array('Friends.$' =>$update_friend_send));
$collection->update($condition,$data);
но когда я запускаю этот код, он обновляет объект Friends, вставляя новый (третий пользователь) объект и удаляя старые объекты (avi12 и second), только последний расширяется.
Как я могу вставить новый объект в объект Friends, сохраняя предыдущие данные, также я не хочу использовать массив. пожалуйста помоги…
Вам нужно использовать $push
вместо $set
когда вы хотите вставить новый объект в существующий массив.
Других решений пока нет …