当前位置:首页 > PHP教程 > php类库 > 列表

php操作mongodb封装类与用法实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-27 15:08:39 浏览: 评论:0 

这篇文章主要介绍了php操作mongodb封装类与用法,结合具体实例形式分析了php定义的MongoDB操作封装类与相关的类实例化、查询、更新等使用技巧,需要的朋友可以参考下。

本文实例讲述了php操作mongodb封装类与用法,分享给大家供大家参考,具体如下:

近来学习了mongodb,刚好是做php开发的,随便写了php操作mongodb的封装类.

  1. <?php 
  2. /** 
  3.  * Created by PhpStorm. 
  4.  * User: lee 
  5.  * Date: 2016/10/24 
  6.  * Time: 13:49 
  7.  */ 
  8. namespace App\Http\Controllers\Api; 
  9. use App\Http\Common\ReturnApi; 
  10. /* 
  11.  * 
  12.  * 
  13.  mongdb常规操作 
  14.  */ 
  15. class MongdbCommonController 
  16.   private static $conn
  17.   private static $mon
  18.   private static $error
  19.   private function __construct(){ 
  20.     //self::$conn = new \MongoClient("mongodb://".env('MONGDB_USER').":".env('MONGDB_PASS')."@".env('MONGDB_HOST').":".env('MONGDB_PORT')."/".env('MONGDB_DB')); 
  21.     self::$conn = new \MongoClient("mongodb://".env('MONGDB_USER').":".env('MONGDB_PASS')."@".env('MONGDB_HOST').":".env('MONGDB_PORT')); 
  22.     //self::$conn = new \MongoClient("mongodb://".env('MONGDB_HOST').":".env('MONGDB_PORT')); 
  23.     $db = env('MONGDB_DB'); 
  24.     self::$mon = self::$conn->$db
  25.   } 
  26.   public static function getInstance(){ 
  27.     if(!(self::$conn instanceof self)){ 
  28.       self::$conn = new self(); 
  29.     } 
  30.     //return self::$conn->mydb; 
  31.     return self::$conn
  32.   } 
  33.   private function __clone(){ 
  34.     trigger_error('Clone is not allowed'); 
  35.   }//禁止克隆 
  36.   //创建索引 
  37.   public function ensureIndex($table$index$index_param=array()) 
  38.   { 
  39.     $index_param['safe'] = 1; 
  40.     try { 
  41.       self::$mon->$table->ensureIndex($index$index_param); 
  42.       return true; 
  43.     } 
  44.     catch (MongoCursorException $e
  45.     { 
  46.       self::$error = $e->getMessage(); 
  47.       return false; 
  48.     } 
  49.   } 
  50.   //添加 
  51.   public function insert($table,$arr){ 
  52.     try { 
  53.       self::$mon->$table->insert($arrarray('w'=>true)); 
  54.       return true; 
  55.     } 
  56.     catch (MongoCursorException $e
  57.     { 
  58.       self::$error = $e->getMessage(); 
  59.       return false; 
  60.     } 
  61.   } 
  62.   //更新 
  63.   public function update($table$condition$new_arr$options=array()) 
  64.   { 
  65.     $options['w'] = 1; 
  66.     if (!isset($options['multiple'])) 
  67.     { 
  68.       $options['multiple'] = 0; 
  69.     } 
  70.     try { 
  71.       self::$mon->$table->update($condition$new_arr$options); 
  72.       return true; 
  73.     } 
  74.     catch (MongoCursorException $e
  75.     { 
  76.       self::$error = $e->getMessage(); 
  77.       return false; 
  78.     } 
  79.   } 
  80.   //删除 
  81.   public function remove($table$condition$options=array()) 
  82.   { 
  83.     $options['w'] = 1; 
  84.     try { 
  85.       self::$mon->$table->remove($condition$options); 
  86.       return true; 
  87.     } 
  88.     catch (MongoCursorException $e
  89.     { 
  90.       self::$error = $e->getMessage(); 
  91.       return false; 
  92.     } 
  93.   } 
  94.   //查找 
  95.   public function find($table$query_condition$result_condition=array(), $fields=array()) 
  96.   { 
  97.     $cursor = self::$mon->$table->find($query_condition$fields); 
  98.     if (!emptyempty($result_condition['start'])) 
  99.     { 
  100.       $cursor->skip($result_condition['start']); 
  101.     } 
  102.     if (!emptyempty($result_condition['limit'])) 
  103.     { 
  104.       $cursor->limit($result_condition['limit']); 
  105.     } 
  106.     if (!emptyempty($result_condition['sort'])) 
  107.     { 
  108.       $cursor->sort($result_condition['sort']); 
  109.     } 
  110.     $result = array(); 
  111.     try { 
  112.       while ($cursor->hasNext()) 
  113.       { 
  114.         $result[] = $cursor->getNext(); 
  115.       } 
  116.     } 
  117.     catch (MongoCursorTimeoutException $e
  118.     { 
  119.       self::$error = $e->getMessage(); 
  120.       return false; 
  121.     } 
  122.     return $result
  123.   } 
  124.   //查找一条记录 
  125.   public function findOne($table$condition$fields=array()) 
  126.   { 
  127.     return self::$mon->$table->findOne($condition$fields); 
  128.   } 
  129.   //返回表的记录数 
  130.   public function count($table
  131.   { 
  132.     return self::$mon->$table->count(); 
  133.   } 
  134.   //返回错误信息 
  135.   public function getError() 
  136.   { 
  137.     return self::$error
  138.   } 

操作实例:

  1. use App\Http\Controllers\Api\MongdbCommonController; 
  2. $db = MongdbCommonController::getInstance(); 
  3. $collection = 'tab'
  4. $data = array('tt' =>'sdsd'
  5.  'pp'  => 'ssdsdf'); 
  6. //返回记录数 
  7. echo $db->count($collection); 
  8. //插入记录 
  9. $db->insert($collectionarray("id"=>2, "title"=>"asdqw")); 
  10. //更新 
  11. $db->update($collectionarray("id"=>2),array('tt'=>'dfdfd',"gg"=>"bbb",'hh'=>'dfsdsd')); 
  12. //查找记录 
  13. echo '<pre>'
  14. print_r( $db->find($collectionarray("tt"=>'dfdfd'), array("start"=>1,"limit"=>4))); 
  15. //删除 
  16. $db->remove($collectionarray('tt' =>'sdsd'));

Tags: php操作mongodb

分享到:

相关文章