代码之家  ›  专栏  ›  技术社区  ›  Chandra dev Kumawat

使用php将新的内部对象插入现有对象mongodb

  •  0
  • Chandra dev Kumawat  · 技术社区  · 6 年前

    我的mongo收藏中有以下文档

    {"_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),最后一个是铰孔。

    如何将新对象插入到朋友对象中保留以前的数据,我也不想使用数组。请帮助。。。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Neel Rathod    6 年前

    您需要使用 $push 而不是 $set 当您要在现有阵列中推送新对象时。