MongoDB操作类PHP代码是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<?phpinclude_oncedirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'Config'.DIRECTORY_SEPARATOR.'database.php';classMongoClass3{staticpublic$conn;//数据库连接staticpublic$db;//数据库选择staticpublic$collection;//结果集合public$debug;publicfunction__construct($type=0){$database='';$database=newDATABASE_CONFIG();if($type==1){$mongo_master=$database->mongo_hems3;}elseif($type==2){$mongo_master=$database->mongo162;}elseif($type==3){$mongo_master=$database->mongo_yuanchuang;}elseif($type==5){$mongo_master=$database->mongo_backup;}elseif($type==0){$mongo_master=$database->mongo;}$host_master=$mongo_master['host'];$database=$mongo_master['database'];$port=$mongo_master['port'];$this->debug=true;//$this->conn=newMongo("mongodb://${username}:${password}@${host}");//$this->conn=newMongo("mongodb://${host_master},${host_slave}",array("replicaSet"=>"shard"));try{$this->conn=newMongo("mongodb://${host_master}:${port}");}catch(Exception$e){$str=$e."\r\n".date('Y-m-dH:i:s',time())."连接mongo失败\r\n";$this->getMongoLogo($str);returnfalse;}//$this->conn=$db->admin;//$this->conn->authenticate('root','123456');$this->db=$this->conn->{$database};}/***Description查询配置表hems_basic记录数可按条件查询记录数*@paramArray$conditions可为空条件格式为数组array('字段1'=>'字段值1','字段2'=>'字段值2')表示条件之间是AND关系*@returnint$count**/publicfunctiongetCount($collection,$conditions=array()){$this->collection=$this->db->{$collection};$count=$this->collection->find($conditions)->count();return$count;}/***Description根据条件查询配置表hems_basic文档*@paramArray$conditions可为空条件格式为数组array('字段1'=>'字段值1','字段2'=>'字段值2')表示条件之间是AND关系*@returnArray$res返回的结果是mongo对象需要遍历才能取出数据**/publicfunctiongetData($collection,$conditions=array(),$field=array(),$order=array(),$start=0,$pernum=20){$this->collection=$this->db->{$collection};if(empty($collection)){returnfalse;}try{if($start==1&&$pernum==0){if($order){$res=$this->collection->find($conditions,$field)->slaveOkay(true)->sort($order);}else{$res=$this->collection->find($conditions,$field)->slaveOkay(true);}}else{if($order){$res=$this->collection->find($conditions,$field)->slaveOkay(true)->sort($order)->skip($start)->limit($pernum);}else{$res=$this->collection->find($conditions,$field)->slaveOkay(true)->skip($start)->limit($pernum);}}}catch(Exception$e){$res=array();$str=date('Y-m-dH:i:s',time())."从集合".$collection."获取数据\r\n条件为:\r\n";$str1='';foreach($conditionsas$key=>$val){$str1.=$key."------------".$val."\r\n";}$this->getMongoLogo($str.$str1."失败\r\n");returnfalse;}try{$res->rewind();}catch(Exception$e){$str=date('Y-m-dH:i:s',time())."从集合".$collection."获取数据\r\n条件为:\r\n";$str1='';foreach($conditionsas$key=>$val){$str1.=$key."------------".$val."\r\n";}$this->getMongoLogo($str.$str1."失败\r\n");returnfalse;}if($res->valid()){returniterator_to_array($res,true);}else{returnfalse;}}/***Description根据条件查询配置表hems_basic文档*@paramArray$conditions可为空条件格式为数组array('字段1'=>'字段值1','字段2'=>'字段值2')表示条件之间是AND关系*@returnArray$res返回的结果是mongo对象需要遍历才能取出数据**/publicfunctiongetDataOr($collection,$conditions){$this->collection=$this->db->{$collection};$res=$this->collection->find(array('$or'=>$conditions));return$res;}/***Description计算数据表中所有文档数(按条件计算,无条件计算整个集合的总数)*@paramArray$conditions可为空条件格式为数组array('字段1'=>'字段值1','字段2'=>'字段值2')表示条件之间是AND关系*@returnint$count*/publicfunctiongetIdDataCount($collection,$conditions=array()){$this->collection=$this->db->{$collection};$count=$this->collection->find($conditions)->count();return$count;}/***Description根据条件或者配置表中的_id到hems_data数据表中取出对应所有文档文档*@paramArray$conditions可为空条件格式为数组array('字段1'=>'字段值1','字段2'=>'字段值2')表示条件之间是AND关系*@returnArray$res返回的结果是mongo对象需要遍历才能取出数据*/publicfunctiongetIdData($collection,$conditions){$this->collection=$this->db->{$collection};$res=$this->collection->find($conditions);return$res;}/***Description根据条件修改数据表文档*@paramArray$conditions$data$conditions格式为数组array('字段1'=>'字段值1','字段2'=>'字段值2')表示多个条件并列*$data格式为数组array('字段1'=>'字段值1','字段2'=>'字段值2')表示修改的字段*/publicfunctioneditData($collection,$conditions,$data){$this->collection=$this->db->{$collection};if($this->collection->update($conditions,array('$set'=>$data),array('multiple'=>1))){$code=1;$msg='修改成功!';}else{$code=0;$msg='修改失败!';}returnarray('code'=>$code,'msg'=>$msg);}/**Description根据条件删除数据表文档*@paramArray$conditions$conditions格式为数组array('字段1'=>'字段值1','字段2'=>'字段值2')表示多个条件并列*/publicfunctiondelData($collection,$conditions){$this->collection=$this->db->{$collection};if($this->collection->remove($conditions)){$code=1;$msg='删除成功!';}else{$code=0;$msg='删除失败!';}returnarray('code'=>$code,'msg'=>$msg);}/**Description插入操作*根据主键_id判断,如果该记录已经存在则*/publicfunctionsave($collection,$field,$flag=0){$this->collection=$this->db->{$collection};$log="";foreach($fieldas$kdata=>$vdata){$log.=$kdata.":".$vdata.",";}$log=trim($log,",");$newLog="\r\n-------\r\ntime:".date("Y-m-dH:i:s")."\r\ndata".$log;$oldLog=file_get_contents("../tmp/mongoLog.txt");@file_put_contents("../tmp/mongoLog.txt",$oldLog.$newLog);if($flag){$result=$this->collection->save($field,array('safe'=>1));}else{$result=$this->collection->insert($field,array('safe'=>1));}return$result;}}?>

关于MongoDB操作类PHP代码是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。