使用 php 将新的内部 object 插入现有的 object mongodb
insert new inner object into existing object mongodb using php
我的 mongo collection
中有以下文档
{"_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"
}
}
}
我想将新 object ("Third user") 插入好友 object。我试过下面的代码...
$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);
但是当我 运行 这段代码时,它通过插入新的(第三个用户)object 更新朋友 object 并删除旧的 objects(avi12 和second), 只有最后一个在扩孔
如何将新的 object 插入 Friends object 并保留以前的数据,而且我不想使用数组。请帮忙...
当你想在现有数组中推送新对象时,你需要使用 $push
而不是 $set
。
我的 mongo collection
中有以下文档{"_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"
}
}
}
我想将新 object ("Third user") 插入好友 object。我试过下面的代码...
$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);
但是当我 运行 这段代码时,它通过插入新的(第三个用户)object 更新朋友 object 并删除旧的 objects(avi12 和second), 只有最后一个在扩孔
如何将新的 object 插入 Friends object 并保留以前的数据,而且我不想使用数组。请帮忙...
当你想在现有数组中推送新对象时,你需要使用 $push
而不是 $set
。