{
"_id": ObjectId("4f7524f23e38831a887ecf02"),
"info": {
"name": "小强",
"gender": "男",
"login_log": {
"0": {
"ip": "127.0.0.1",
"time": "20120301"
},
"1": {
"ip": "172.16.26.16",
"time": "20120330"
}
}
}
}
{
"_id": ObjectId("4f7524f23e38831a887ecf02"),
"info": {
"name": "小明",
"gender": "女",
"login_log": {
"0": {
"ip": "127.0.0.1",
"time": "20120328"
},
"1": {
"ip": "172.16.26.16",
"time": "20120329"
}
}
}
}
查询在2012-03-30登录的用户信息,查询条件如下:
//方法1
$cursor = $db->find(
array('info.login_log'=>array('$elemMatch'=>array('time'=>'20120330'))),
array('info.name'=>true) //'info.name'是指要查询的字段,参数可以为空
);
foreach($cursor as $doc){ print_r($doc);}
//方法2
$js = "
function (){
var status = false;
for(var i in this.info.login_log){
if(this.info.login_log[i].time == '20120330'){
status = true;
}
}
return status;
}";
$cursor = $db->find(array('$where'=>$js),array('info.name'=>true));
foreach($cursor as $doc){ print_r($doc);}