PHP Mongodb API参考

简介:
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,如需转载请自行联系原作者


相关文章
|
7月前
|
JSON API 数据格式
淘宝商品评论API接口,json数据示例参考
淘宝开放平台提供了多种API接口来获取商品评论数据,其中taobao.item.reviews.get是一个常用的接口,用于获取指定商品的评论信息。以下是关于该接口的详细介绍和使用方法:
|
10月前
|
XML JSON API
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
|
6月前
|
JSON 监控 API
亚马逊Amazon商品详情API接口解析,josn数据参考
亚马逊商品详情API接口助力开发者高效获取商品信息,返回结构清晰的JSON数据,涵盖价格、描述、图片等关键字段。本文详解API调用方法与JSON格式,助您快速掌握商品数据抓取技巧,提升开发效率,适用于电商、数据分析等领域。
|
6月前
|
JSON JavaScript 前端开发
Python+JAVA+PHP语言,苏宁商品详情API
调用苏宁商品详情API,可通过HTTP/HTTPS发送请求并解析响应数据,支持多种编程语言,如JavaScript、Java、PHP、C#、Ruby等。核心步骤包括构造请求URL、发送GET/POST请求及解析JSON/XML响应。不同语言示例展示了如何获取商品名称与价格等信息,实际使用时请参考苏宁开放平台最新文档以确保兼容性。
|
12月前
|
API PHP
2025宝塔API一键建站系统PHP源码
2025宝塔API一键建站系统PHP源码
338 90
|
11月前
|
XML 数据挖掘 API
1688商品详情数据示例参考,1688API接口系列
在成长的路上,我们都是同行者。这篇关于详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
11月前
|
自然语言处理 API 开发者
DeepSeek-Free-API:DeepSeekV3免费的api接口,需要使用api方式的同学可以参考一下这个项目,可以收藏起来试一下
嗨,大家好,我是小华同学。今天为大家介绍一个开源项目——DeepSeek V3 Free 服务。该项目基于 DeepSeek-V3 R1 大模型,提供免费、高性能的 API,支持高速流式输出、多轮对话、联网搜索和深度思考等功能。适用于智能客服、内容创作、教育辅助等场景。部署方式灵活,支持 Docker、Docker-compose、Render、Vercel 和原生部署。欢迎关注我们,获取更多优质开源项目和高效工作学习方法。
2789 15
|
12月前
|
JSON 缓存 API
解析电商商品详情API接口系列,json数据示例参考
电商商品详情API接口是电商平台的重要组成部分,提供了商品的详细信息,支持用户进行商品浏览和购买决策。通过合理的API设计和优化,可以提升系统性能和用户体验。希望本文的解析和示例能够为开发者提供参考,帮助构建高效、可靠的电商系统。
458 12
|
12月前
|
XML JSON API
淘宝商品详情(item get)API接口系列,示例说明参考
淘宝商品详情(item_get)API接口是淘宝开放平台(Taobao Open Platform)提供的一个重要接口,允许开发者通过HTTP请求获取淘宝商品的详细信息。以下是对该接口系列的示例说明参考
|
JSON API 数据安全/隐私保护
淘宝评论API接口操作步骤详解,代码示例参考
淘宝评论API接口是淘宝开放平台提供的一项服务,通过该接口,开发者可以访问商品的用户评价和评论。这些评论通常包括评分、文字描述、图片或视频等内容。商家可以利用这些信息更好地了解消费者的需求和偏好,优化产品和服务。同时,消费者也可以从这些评论中获得准确的购买参考,做出更明智的购买决策。

推荐镜像

更多