如何使用php更新多维mongodb记录

如何使用php更新多维mongodb记录,php,arrays,mongodb,codeigniter,sql-update,Php,Arrays,Mongodb,Codeigniter,Sql Update,我有这样的收藏 [_id] => 1 [user_id] => 2 [work_details] => Array ( [0] => Array ( [login_date] => 2015-12-22 [login_time] => 16:40:00

我有这样的收藏

 [_id] => 1
    [user_id] => 2
    [work_details] => Array
        (
            [0] => Array
                (
                    [login_date] => 2015-12-22
                    [login_time] => 16:40:00
                    [log_out_time] => 
                )

        )
注销时,我需要使用更新注销时间 我试过了,但没用

$user_id = 2;          
$logout_time = date("Y-m-d H:i:s");
$collect = $this->mongo_db->db->selectCollection("log_master");
$new_work = array("log_out_time" =>$logout_time);
$collect->update(array("user_id"=>(int)$user_id,"work_details.login_date"=>'2015-12-22'),array('$push' => array("work_details" =>$logout_time)));
此查询将提供以下输出

    [_id] => 1
    [user_id] => 2
    [work_details] => Array
        (
            [0] => Array
                (
                    [login_date] => 2015-12-22
                    [login_time] => 16:46:53
                    [log_out_time] => 
                )

            [1] => Array
                (
                    [log_out_time] => 2015-12-22 16:46:58
                )

        )
我需要更新[注销时间]=>


谢谢

您可以使用该对象的编号更新特定对象

db.log_master.update({
  "user_id":2,
  "work_details.0.login_date":'2015-12-22'
  },
  { 
    $set :{ "work_details.0.log_out_time":"2015-12-22 16:46:58"}
  }
)
在PHP中

$collect->update(
    array(
        "user_id"=>(int)$user_id,
        "work_details.0.login_date"=>'2015-12-22'
    ),
    array(
        '$set' => array("work_details.0.log_out_time" =>$logout_time)
    )
 );