<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[php mongodb操作类，适合mongodb2.x和mongodb3.x]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[代码编程]]></category>
<pubDate>Wed, 14 Mar 2018 03:53:53 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	php mongodb操作类，适合mongodb2.x和mongodb3.x<br/><div class="code"><br/>&lt;?php<br/>/*** Mongodb类**<br/> examples:&nbsp;&nbsp;&nbsp;&nbsp; <br/>* $mongo = new HMongodb(&quot;127.0.0.1:11223&quot;);&nbsp;&nbsp; <br/>* $mongo-&gt;selectDb(&quot;test_db&quot;);&nbsp;&nbsp; <br/>* 创建索引&nbsp;&nbsp; <br/>* $mongo-&gt;ensureIndex(&quot;test_table&quot;, array(&quot;id&quot;=&gt;1), array(&#039;unique&#039;=&gt;true));&nbsp;&nbsp; <br/>* 获取表的记录&nbsp;&nbsp; <br/>* $mongo-&gt;count(&quot;test_table&quot;);&nbsp;&nbsp; <br/>* 插入记录&nbsp;&nbsp; <br/>* $mongo-&gt;insert(&quot;test_table&quot;, array(&quot;id&quot;=&gt;2, &quot;title&quot;=&gt;&quot;asdqw&quot;));&nbsp;&nbsp; <br/>* 更新记录&nbsp;&nbsp;array(&#039;$set&#039;=&gt;$newdata) 只修改指定字段<br/>* $mongo-&gt;update(&quot;test_table&quot;, array(&quot;id&quot;=&gt;1),array(&quot;id&quot;=&gt;1,&quot;title&quot;=&gt;&quot;bbb&quot;));&nbsp;&nbsp; <br/>* 更新记录-存在时更新，不存在时添加-相当于set&nbsp;&nbsp;<br/>* $mongo-&gt;update(&quot;test_table&quot;, array(&quot;id&quot;=&gt;1),array(&quot;id&quot;=&gt;1,&quot;title&quot;=&gt;&quot;bbb&quot;),array(&quot;upsert&quot;=&gt;1));&nbsp;&nbsp; <br/>* 查找记录&nbsp;&nbsp; <br/>* $mongo-&gt;find(&quot;test_table&quot;, array(&quot;title&quot;=&gt;&quot;asdqw&quot;), array(&quot;start&quot;=&gt;2,&quot;limit&quot;=&gt;2,&quot;sort&quot;=&gt;array(&quot;id&quot;=&gt;1)))&nbsp;&nbsp; <br/>* 查找一条记录&nbsp;&nbsp; <br/>* $mongo-&gt;findOne(&quot;test_table&quot;, array(&quot;id&quot;=&gt;1));&nbsp;&nbsp; <br/>* 删除记录&nbsp;&nbsp; <br/>* $mongo-&gt;remove(&quot;ttt&quot;, array(&quot;title&quot;=&gt;&quot;bbb&quot;));&nbsp;&nbsp; <br/>* 仅删除一条记录&nbsp;&nbsp; <br/>* $mongo-&gt;remove(&quot;ttt&quot;, array(&quot;title&quot;=&gt;&quot;bbb&quot;), array(&quot;justOne&quot;=&gt;1));&nbsp;&nbsp; <br/>* 获取Mongo操作的错误信息&nbsp;&nbsp; <br/>* $mongo-&gt;getError();&nbsp;&nbsp; <br/>*/&nbsp;&nbsp;&nbsp;&nbsp; <br/><br/><br/>class HMongodb &#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;public $_idType=1;//主键类型 1 string 0 obj<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//Mongodb连接&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;var $mongo;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;var $curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;var $curr_table_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;var $error;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 构造函数&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 支持传入多个mongo_server(1.一个出问题时连接其它的server 2.自动将查询均匀分发到不同server)&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $mongo_server:数组或字符串-array(&quot;127.0.0.1:1111&quot;, &quot;127.0.0.1:2222&quot;)-&quot;127.0.0.1:1111&quot;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $connect:初始化mongo对象时是否连接，默认连接&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $auto_balance:是否自动做负载均衡，默认是&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 成功：mongo object&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 失败：false&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function __construct($mongo_server, $connect=true, $auto_balance=true)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (is_array($mongo_server))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongo_server_num = count($mongo_server);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($mongo_server_num &gt; 1 &amp;&amp; $auto_balance)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$prior_server_num = rand(1, $mongo_server_num);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rand_keys = array_rand($mongo_server,$mongo_server_num);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongo_server_str = $mongo_server&#91;$prior_server_num-1&#93;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach ($rand_keys as $key)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($key != $prior_server_num - 1)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongo_server_str .= &#039;,&#039; . $mongo_server&#91;$key&#93;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongo_server_str = implode(&#039;,&#039;, $mongo_server);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongo_server_str = trim($mongo_server); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//$config_arr=explode(&#039;/&#039;,$mongo_server);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//$this-&gt;curr_db_name = array_pop($config_arr);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$last_index=strrpos($mongo_server_str,&#039;/&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$db_name=substr($mongo_server_str,$last_index+1,strlen($mongo_server_str));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;curr_db_name = $db_name;//获取dbname<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($db_name);exit;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;mongo = new MongoClient($mongo_server, array(&#039;connect&#039;=&gt;$connect));&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (MongoConnectionException $e)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;error = $e-&gt;getMessage();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function getInstance($mongo_server, $flag=array())&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static $mongodb_arr;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (empty($flag&#91;&#039;tag&#039;&#93;))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$flag&#91;&#039;tag&#039;&#93; = &#039;default&#039;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (isset($flag&#91;&#039;force&#039;&#93;) &amp;&amp; $flag&#91;&#039;force&#039;&#93; == true)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongo = new HMongodb($mongo_server);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (empty($mongodb_arr&#91;$flag&#91;&#039;tag&#039;&#93;&#93;))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongodb_arr&#91;$flag&#91;&#039;tag&#039;&#93;&#93; = $mongo;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $mongo;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if (isset($mongodb_arr&#91;$flag&#91;&#039;tag&#039;&#93;&#93;) &amp;&amp; is_resource($mongodb_arr&#91;$flag&#91;&#039;tag&#039;&#93;&#93;))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $mongodb_arr&#91;$flag&#91;&#039;tag&#039;&#93;&#93;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongo = new HMongodb($mongo_server);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mongodb_arr&#91;$flag&#91;&#039;tag&#039;&#93;&#93; = $mongo;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $mongo;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 连接mongodb server&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：无&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 成功：true&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 失败：false&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function connect()&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;mongo-&gt;connect();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (MongoConnectionException $e)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;error = $e-&gt;getMessage();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* select db&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：$dbname&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：无&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function selectDb($dbname)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;curr_db_name = $dbname;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 创建索引：如索引已存在，则返回。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $table_name:表名&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $index:索引-array(&quot;id&quot;=&gt;1)-在id字段建立升序索引&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $index_param:其它条件-是否唯一索引等&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 成功：true&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 失败：false&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function ensureIndex($table_name, $index, $index_param=array())&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$index_param&#91;&#039;safe&#039;&#93; = 1;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;ensureIndex($index, $index_param);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (MongoCursorException $e)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;error = $e-&gt;getMessage();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 插入记录&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $table_name:表名&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $record:记录&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 成功：true&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 失败：false&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function insert($table_name, $record)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;insert($record, array(&#039;safe&#039;=&gt;true));&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (MongoCursorException $e)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;error = $e-&gt;getMessage();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 查询表的记录数&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $table_name:表名&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：表的记录数&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function count($table_name,$query_condition=array())&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;find($query_condition)-&gt;count();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;//$newdata存在有_id则更新 不存在则插入<br/>&nbsp;&nbsp;function save($table_name, $newdata) &#123;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;if($this-&gt;_idType &amp;&amp; $newdata&#91;&#039;_id&#039;&#93;)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newdata&#91;&#039;_id&#039;&#93;=new MongoId($newdata&#91;&#039;_id&#039;&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;save($newdata);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 更新记录&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $table_name:表名&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $condition:更新条件&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $newdata:新的数据记录&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $options:更新选择-upsert/multiple&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 成功：true&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 失败：false&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function update($table_name, $condition, $newdata, $options=array())&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp; if($this-&gt;_idType &amp;&amp; $condition&#91;&#039;_id&#039;&#93;)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$condition&#91;&#039;_id&#039;&#93;=new MongoId($condition&#91;&#039;_id&#039;&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$options&#91;&#039;safe&#039;&#93; = 1;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!isset($options&#91;&#039;multiple&#039;&#93;))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$options&#91;&#039;multiple&#039;&#93; = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;update($condition, $newdata, $options);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (MongoCursorException $e)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;error = $e-&gt;getMessage();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 删除记录&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $table_name:表名&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $condition:删除条件&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $options:删除选择-justOne&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 成功：true&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 失败：false&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function remove($table_name, $condition, $options=array())&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;if($this-&gt;_idType &amp;&amp; $condition&#91;&#039;_id&#039;&#93;)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$condition&#91;&#039;_id&#039;&#93;=new MongoId($condition&#91;&#039;_id&#039;&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$options&#91;&#039;safe&#039;&#93; = 1;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;remove($condition, $options);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (MongoCursorException $e)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;error = $e-&gt;getMessage();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 查找记录&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $table_name:表名&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $query_condition:字段查找条件&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $result_condition:查询结果限制条件-limit/sort等&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $fields:获取字段&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 成功：记录集&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 失败：false&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function find($table_name, $query_condition, $result_condition=array(), $fields=array())&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cursor = $this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;find($query_condition, $fields);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!empty($result_condition&#91;&#039;start&#039;&#93;))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cursor-&gt;skip($result_condition&#91;&#039;start&#039;&#93;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!empty($result_condition&#91;&#039;limit&#039;&#93;))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cursor-&gt;limit($result_condition&#91;&#039;limit&#039;&#93;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!empty($result_condition&#91;&#039;sort&#039;&#93;))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cursor-&gt;sort($result_condition&#91;&#039;sort&#039;&#93;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = array();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ($cursor-&gt;hasNext())&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row= $cursor-&gt;getNext();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($cursor-&gt;getNext());exit;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($this-&gt;_idType &amp;&amp; is_object($row&#91;&#039;_id&#039;&#93;))&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row&#91;&#039;_id&#039;&#93;=$row&#91;&#039;_id&#039;&#93;-&gt;__toString();//转换字符串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&#91;&#93; =$row;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (MongoConnectionException $e)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;error = $e-&gt;getMessage();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (MongoCursorTimeoutException $e)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;error = $e-&gt;getMessage();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $result;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 查找一条记录&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $table_name:表名&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $condition:查找条件&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* $fields:获取字段&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 成功：一条记录&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 失败：false&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function findOne($table_name, $condition, $fields=array())&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;if($this-&gt;_idType &amp;&amp; $condition&#91;&#039;_id&#039;&#93;)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$condition&#91;&#039;_id&#039;&#93;=new MongoId($condition&#91;&#039;_id&#039;&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row=$this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;findOne($condition, $fields);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if($this-&gt;_idType &amp;&amp; is_object($row&#91;&#039;_id&#039;&#93;))&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row&#91;&#039;_id&#039;&#93;=$row&#91;&#039;_id&#039;&#93;-&gt;__toString();//转换字符串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $row;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 获取当前错误信息&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 参数：无&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回值：当前错误信息&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;function getError()&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $this-&gt;error;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;<br/>&nbsp;&nbsp;//返回原生mongodb collection集合对象<br/>&nbsp;&nbsp;function getCollection($table_name)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $this-&gt;mongo-&gt;$dbname-&gt;$table_name;<br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;//分组统计<br/>&nbsp;&nbsp;function group($table_name,$keys,$initial,$reduce,$condition)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$dbname = $this-&gt;curr_db_name;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;$g = $this-&gt;mongo-&gt;$dbname-&gt;$table_name-&gt;group($keys, $initial, $reduce,$condition); <br/>&nbsp;&nbsp;&nbsp;&nbsp;return $g;<br/>&nbsp;&nbsp;&#125;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&#125;&nbsp;&nbsp;&nbsp;&nbsp; <br/></div>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] php mongodb操作类，适合mongodb2.x和mongodb3.x]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>