PHP Mongodb API参考

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:
php  
/*** Mongodb类** examples:   
* $mongo = new HMongodb("127.0.0.1:11223"); 
* $mongo->selectDb("test_db"); 
* 创建索引 
* $mongo->ensureIndex("test_table", array("id"=>1), array('unique'=>true)); 
* 获取表的记录 
* $mongo->count("test_table"); 
* 插入记录 
* $mongo->insert("test_table", array("id"=>2, "title"=>"asdqw")); 
* 更新记录 
* $mongo->update("test_table", array("id"=>1),array("id"=>1,"title"=>"bbb")); 
* 更新记录-存在时更新,不存在时添加-相当于set 
* $mongo->update("test_table", array("id"=>1),array("id"=>1,"title"=>"bbb"),array("upsert"=>1)); 
* 查找记录 
* $mongo->find("c", array("title"=>"asdqw"), array("start"=>2,"limit"=>2,"sort"=>array("id"=>1))) 
* 查找一条记录 
* $mongo->findOne("$mongo->findOne("ttt", array("id"=>1))", array("id"=>1)); 
* 删除记录 
* $mongo->remove("ttt", array("title"=>"bbb")); 
* 仅删除一条记录 
* $mongo->remove("ttt", array("title"=>"bbb"), array("justOne"=>1)); 
* 获取Mongo操作的错误信息 
* $mongo->getError(); 
*/class HMongodb {  
  
    //Mongodb连接  var $mongo;  
  
    var $curr_db_name;  
    var $curr_table_name;  
    var $error;  
  
    /** 
    * 构造函数 
    * 支持传入多个mongo_server(1.一个出问题时连接其它的server 2.自动将查询均匀分发到不同server) 
    * 
    * 参数: 
    * $mongo_server:数组或字符串-array("127.0.0.1:1111", "127.0.0.1:2222")-"127.0.0.1:1111" 
    * $connect:初始化mongo对象时是否连接,默认连接 
    * $auto_balance:是否自动做负载均衡,默认是 
    * 
    * 返回值: 
    * 成功:mongo object 
    * 失败:false 
    */  
    function __construct($mongo_server, $connecttruetrue)  
    {  
        if (is_array($mongo_server))  
        {  
            $mongo_server_num  count($mongo_server);  
            if1 $auto_balance)  
            {  
                $prior_server_num 1, $mongo_server_num);  
                $rand_keys  array_rand($mongo_server,$mongo_server_num);  
                $mongo_server_str 1];  
                foreachas $key)  
                {  
                    if1)  
                    {  
                        $mongo_server_str .',' . $mongo_server[$key];  
                    }  
                }  
            }  
            else  
            {  
                $mongo_server_str ',', $mongo_server);  
            }                  }  
        else  
        {  
            $mongo_server_str  $mongo_server;  
        }  
        try {  
            $thisnew'connect'$connect));  
        }  
        catch (MongoConnectionException $e)  
        {  
            $thisgetMessage();  
            returnfalse;  
        }  
    }  
  
    function getInstance($mongo_server, $flagarray())  
    {  
        static $mongodb_arr;  
        if'tag']))  
        {  
            $flag['tag''default';          }  
        if'force''force'true)  
        {  
            $mongo new HMongodb($mongo_server);  
            if'tag']]))  
            {  
                $mongodb_arr[$flag['tag' $mongo;  
            }  
            return $mongo;  
        }  
        elseif'tag''tag']]))  
        {  
            return'tag']];  
        }  
        else  
        {  
            $mongo new HMongodb($mongo_server);  
            $mongodb_arr[$flag['tag' $mongo;  
            return $mongo;                  }          }  
  
    /** 
    * 连接mongodb server 
    * 
    * 参数:无 
    * 
    * 返回值: 
    * 成功:true 
    * 失败:false 
    */  
    function connect()  
    {  
        try {  
            $thisconnect();  
            returntrue;  
        }  
        catch (MongoConnectionException $e)  
        {  
            $thisgetMessage();  
            returnfalse;  
        }  
    }  
  
    /** 
    * select db 
    * 
    * 参数:$dbname 
    * 
    * 返回值:无 
    */  
    function selectDb($dbname)  
    {  
        $this $dbname;  
    }  
  
    /** 
    * 创建索引:如索引已存在,则返回。 
    * 
    * 参数: 
    * $table_name:表名 
    * $index:索引-array("id"=>1)-在id字段建立升序索引 
    * $index_param:其它条件-是否唯一索引等 
    * 
    * 返回值: 
    * 成功:true 
    * 失败:false 
    */  
    function ensureIndex($table_name, $index, $index_paramarray())  
    {  
        $dbname thiscurr_db_name;  
        $index_param['safe'1;  
        try {  
            $thisensureIndex($index, $index_param);  
            returntrue;  
        }  
        catch (MongoCursorException $e)  
        {  
            $thisgetMessage();  
            returnfalse;  
        }  
    }  
  
    /** 
    * 插入记录 
    * 
    * 参数: 
    * $table_name:表名 
    * $record:记录 
    * 
    * 返回值: 
    * 成功:true 
    * 失败:false 
    */  
    function insert($table_name, $record)  
    {  
        $dbname thiscurr_db_name;  
        try {  
            $this'safe'true));  
            returntrue;  
        }  
        catch (MongoCursorException $e)  
        {  
            $thisgetMessage();  
            returnfalse;  
        }  
    }  
  
    /** 
    * 查询表的记录数 
    * 
    * 参数: 
    * $table_name:表名 
    * 
    * 返回值:表的记录数 
    */  
    function count($table_name)  
    {  
        $dbname thiscurr_db_name;  
        returnthiscount();  
    }  
  
    /** 
    * 更新记录 
    * 
    * 参数: 
    * $table_name:表名 
    * $condition:更新条件 
    * $newdata:新的数据记录 
    * $options:更新选择-upsert/multiple 
    * 
    * 返回值: 
    * 成功:true 
    * 失败:false 
    */  
    function update($table_name, $condition, $newdata, $optionsarray())  
    {  
        $dbname thiscurr_db_name;  
        $options['safe'1;  
        if'multiple']))  
        {  
            $options['multiple'0;          }  
        try {  
            $thisupdate($condition, $newdata, $options);  
            returntrue;  
        }  
        catch (MongoCursorException $e)  
        {  
            $thisgetMessage();  
            returnfalse;  
        }          }  
  
    /** 
    * 删除记录 
    * 
    * 参数: 
    * $table_name:表名 
    * $condition:删除条件 
    * $options:删除选择-justOne 
    * 
    * 返回值: 
    * 成功:true 
    * 失败:false 
    */  
    function remove($table_name, $condition, $optionsarray())  
    {  
        $dbname thiscurr_db_name;  
        $options['safe'1;  
        try {  
            $thisremove($condition, $options);  
            returntrue;  
        }  
        catch (MongoCursorException $e)  
        {  
            $thisgetMessage();  
            returnfalse;  
        }          }  
  
    /** 
    * 查找记录 
    * 
    * 参数: 
    * $table_name:表名 
    * $query_condition:字段查找条件 
    * $result_condition:查询结果限制条件-limit/sort等 
    * $fields:获取字段 
    * 
    * 返回值: 
    * 成功:记录集 
    * 失败:false 
    */  
    function find($table_name, $query_condition, $result_conditionarray())  
    {  
        $dbname thiscurr_db_name;  
        $cursor thisfind($query_condition, $fields);  
        if'start']))  
        {  
            $cursor'start']);  
        }  
        if'limit']))  
        {  
            $cursor'limit']);  
        }  
        if'sort']))  
        {  
            $cursor'sort']);  
        }  
        $result  array();  
        try {  
            whilehasNext())  
            {  
                $result[] getNext();  
            }  
        }  
        catch (MongoConnectionException $e)  
        {  
            $thisgetMessage();  
            returnfalse;  
        }  
        catch (MongoCursorTimeoutException $e)  
        {  
            $thisgetMessage();  
            returnfalse;  
        }  
        return $result;  
    }  
  
    /** 
    * 查找一条记录 
    * 
    * 参数: 
    * $table_name:表名 
    * $condition:查找条件 
    * $fields:获取字段 
    * 
    * 返回值: 
    * 成功:一条记录 
    * 失败:false 
    */  
    function findOne($table_name, $condition, $fieldsarray())  
    {  
        $dbname thiscurr_db_name;  
        returnthisfindOne($condition, $fields);  
    }  
  
    /** 
    * 获取当前错误信息 
    * 
    * 参数:无 
    * 
    * 返回值:当前错误信息 
    */  
    function getError()  
    {  
        returnthiserror;  
    }  
}  
  

?>





本文转自TBHacker博客园博客,原文链接:http://blog.51cto.com/blogcommend/p41,如需转载请自行联系原作者


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
18天前
|
NoSQL MongoDB PHP
MongoDB PHP
10月更文挑战第19天
27 2
MongoDB PHP
|
2天前
|
API PHP 数据库
PHP中哪个框架最适合做API?
在数字化时代,API作为软件应用间通信的桥梁至关重要。本文探讨了PHP中适合API开发的主流框架,包括Laravel、Symfony、Lumen、Slim、Yii和Phalcon,分析了它们的特点和优势,帮助开发者选择合适的框架,提高开发效率、保证接口稳定性和安全性。
12 3
|
3天前
|
JSON API 数据格式
Amazon商品详情API,json数据格式示例参考
亚马逊商品详情API接口返回的JSON数据格式通常包含丰富的商品信息,以下是一个简化的JSON数据格式示例参考
|
4天前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
随着互联网技术的发展,前后端分离成为Web开发的主流模式。本文介绍RESTful API的基本概念、设计原则及在PHP中的实现方法。RESTful API是一种轻量级、无状态的接口设计风格,通过HTTP方法(GET、POST、PUT、DELETE)操作资源,使用JSON或XML格式传输数据。在PHP中,通过定义路由、创建控制器、处理HTTP请求和响应等步骤实现RESTful API,并强调了安全性的重要性。
12 2
|
19天前
|
Java API 开发工具
API参考手册
【10月更文挑战第18天】API参考手册
28 2
|
18天前
|
NoSQL 安全 Linux
MongoDB PHP 扩展
10月更文挑战第19天
10 0
MongoDB PHP 扩展
|
3天前
|
JSON API PHP
如何使用PHP开发API接口?
本文详细介绍了如何使用PHP开发API接口,涵盖从基础概念到实战步骤的全过程。首先解释了API接口的基本原理,包括HTTP协议、REST架构风格、JSON格式和OAuth认证机制。接着介绍了开发环境的设置,包括PHP安装、Web服务器配置、数据库设置等。文章还探讨了API开发的完整流程,从需求确定、框架选择、端点设计到代码编写、测试、安全性考量及性能优化。最后通过一个实战案例演示了如何创建一个简单的API端点,并讨论了部署与监控的方法。
12 0
|
26天前
|
JSON API 数据格式
商品详情数据JSON格式示例参考(api接口)
JSON数据格式的商品详情数据通常包含商品的多个层级信息,以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考:
|
3月前
|
JSON 前端开发 API
【淘系】商品详情属性解析(属性规格详情图sku等json数据示例返回参考),淘系API接口系列
在淘宝(或天猫)平台上,商品详情属性(如属性规格、详情图、SKU等)是商家在发布商品时设置的,用于描述商品的详细信息和不同规格选项。这些信息对于消费者了解商品特性、进行购买决策至关重要。然而,直接通过前端页面获取这些信息的结构化数据(如JSON格式)并非直接暴露给普通用户或开发者,因为这涉及到平台的商业机密和数据安全。 不过,淘宝平台提供了丰富的API接口(如淘宝开放平台API),允许有资质的开发者或合作伙伴通过编程方式获取商品信息。这些API接口通常需要注册开发者账号、申请应用密钥(App Key)和秘钥(App Secret),并遵守淘宝的API使用协议。
|
3月前
|
PHP
【Azure Developer】PHP网站使用AAD授权登录的参考示例
【Azure Developer】PHP网站使用AAD授权登录的参考示例
下一篇
无影云桌面