如何使用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)
)
);