温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在php中操作mongodb封装类

发布时间:2021-02-25 15:09:10 阅读:204 作者:戴恩恩 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

本文章向大家介绍怎么在php中操作mongodb封装类的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

php有什么用

php是一个嵌套的缩写名称,指的是英文超级文本预处理语言(php:Hypertext Preprocessor)的缩写,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。

mongodb的封装类.

<?php
namespace App\Http\Controllers\Api;
use App\Http\Common\ReturnApi;
/*
 *
 *
 mongdb常规操作
 */
class MongdbCommonController
{
  private static $conn;
  private static $mon;
  private static $error;
  private function __construct(){
    //self::$conn = new \MongoClient("mongodb://".env('MONGDB_USER').":".env('MONGDB_PASS')."@".env('MONGDB_HOST').":".env('MONGDB_PORT')."/".env('MONGDB_DB'));
    self::$conn new \MongoClient("mongodb://".env('MONGDB_USER').":".env('MONGDB_PASS')."@".env('MONGDB_HOST').":".env('MONGDB_PORT'));
    //self::$conn = new \MongoClient("mongodb://".env('MONGDB_HOST').":".env('MONGDB_PORT'));
    $db env('MONGDB_DB');
    self::$mon self::$conn->$db;
  }
  public static function getInstance(){
    if(!(self::$conn instanceof self)){
      self::$conn new self();
    }
    //return self::$conn->mydb;
    return self::$conn;
  }
  private function __clone(){
    trigger_error('Clone is not allowed');
  }//禁止克隆
  //创建索引
  public function ensureIndex($table$index$index_param=array())
  {
    $index_param['safe'] = 1;
    try {
      self::$mon->$table->ensureIndex($index$index_param);
      return true;
    }
    catch (MongoCursorException $e)
    {
      self::$error $e->getMessage();
      return false;
    }
  }
  //添加
  public function insert($table,$arr){
    try {
      self::$mon->$table->insert($arrarray('w'=>true));
      return true;
    }
    catch (MongoCursorException $e)
    {
      self::$error $e->getMessage();
      return false;
    }
  }
  //更新
  public function update($table$condition$new_arr$options=array())
  {
    $options['w'] = 1;
    if (!isset($options['multiple']))
    {
      $options['multiple'] = 0;
    }
    try {
      self::$mon->$table->update($condition$new_arr$options);
      return true;
    }
    catch (MongoCursorException $e)
    {
      self::$error $e->getMessage();
      return false;
    }
  }
  //删除
  public function remove($table$condition$options=array())
  {
    $options['w'] = 1;
    try {
      self::$mon->$table->remove($condition$options);
      return true;
    }
    catch (MongoCursorException $e)
    {
      self::$error $e->getMessage();
      return false;
    }
  }
  //查找
  public function find($table$query_condition$result_condition=array(), $fields=array())
  {
    $cursor self::$mon->$table->find($query_condition$fields);
    if (!empty($result_condition['start']))
    {
      $cursor->skip($result_condition['start']);
    }
    if (!empty($result_condition['limit']))
    {
      $cursor->limit($result_condition['limit']);
    }
    if (!empty($result_condition['sort']))
    {
      $cursor->sort($result_condition['sort']);
    }
    $result array();
    try {
      while ($cursor->hasNext())
      {
        $result[] = $cursor->getNext();
      }
    }
    catch (MongoCursorTimeoutException $e)
    {
      self::$error $e->getMessage();
      return false;
    }
    return $result;
  }
  //查找一条记录
  public function findOne($table$condition$fields=array())
  {
    return self::$mon->$table->findOne($condition$fields);
  }
  //返回表的记录数
  public function count($table)
  {
    return self::$mon->$table->count();
  }
  //返回错误信息
  public function getError()
  {
    return self::$error;
  }
}

操作实例:

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

以上就是小编为大家带来的怎么在php中操作mongodb封装类的全部内容了,希望大家多多支持亿速云!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×