<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog]]></title> 
<link>http://www.bizeway.net/index.php</link> 
<description><![CDATA[网务通 - 网务公司发展之路]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog]]></copyright>
<item>
<link>http://www.bizeway.net/read.php?</link>
<title><![CDATA[PHP操作MongoDB学习]]></title> 
<author>ArthurXF &lt;arthurxf@gmail.com&gt;</author>
<category><![CDATA[Mongodb]]></category>
<pubDate>Fri, 26 Oct 2012 03:21:05 +0000</pubDate> 
<guid>http://www.bizeway.net/read.php?</guid> 
<description>
<![CDATA[ 
	<span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">1 &nbsp; mongodb启动时，设置启动项 </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">C:&#92;&gt;mongodb&#92;bin&#92;mongod &nbsp;--config C:&#92;mongodb.conf </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">其中mongodb.conf为： </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; dbpath = D:&#92;mongodb_data &nbsp; &nbsp;</span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;logpath &nbsp;= D:&#92;mongodb.log &nbsp; &nbsp; &nbsp;</span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;logappend &nbsp;= true </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> 如果是linux的话，则mongod &nbsp;--config /etc/mongodb.conf </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">2 &nbsp;停止server </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; db.shutdownServer() </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">3 &nbsp;常用操作: </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;use myfirstdb </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; 插入db </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;db.movies.insert({name:&quot;Source Code&quot;, genre:&quot;sci-fi&quot;, year:2011}) </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;查找所有记录 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;db.movies.find() </span> <div><span style="line-height: 25px"><br /></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">4 &nbsp;. PHP MongoDB 扩展安装</span></div> <div><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; php 5.2 mongo driver下载： </span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"><br /></span></div> <div><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> <span style="white-space: pre"> </span>http://downloads.mongodb.org/mongo-latestphp5.2vc6ts. </span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">zip </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; 5.3 mongo driver下载： </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; <span style="white-space: pre"> </span>http://downloads.mongodb.org/mongo-latest-php5.3vc6ts.zip </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;把DLL复制到extension目录，然后 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">extension=php_mongo.dll即可 </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">5 &nbsp;列出当前数据库的php mongodb程序 </span><br /> <div id="highlighter_586927" style="margin: 1em 0px; padding: 1px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: 737.54px; height: auto !important; right: auto !important; bottom: auto !important; color: #404040; line-height: 15.39px; font-family: Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace !important; vertical-align: baseline !important; float: none !important; position: relative !important; min-height: inherit !important; background-image: none"> <div style="margin: 0px; padding: 0px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: auto !important; height: auto !important; right: auto !important; bottom: auto !important; line-height: 15.39px; font-size: 1em !important; vertical-align: baseline !important; float: none !important; position: static !important; min-height: inherit !important; background-image: none"> <div style="margin: 0px; padding: 0px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: auto !important; height: auto !important; right: auto !important; bottom: auto !important; line-height: 15.39px; font-size: 1em !important; vertical-align: baseline !important; float: none !important; position: static !important; min-height: inherit !important; background-image: none"><pre class="prettyprint"><p><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pun">&lt;?</span><span class="pln">php </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="kwd">try</span><span class="pun">{ </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">$mongo </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Mongo</span><span class="pun">();</span><span class="pln"> </span><span class="com">//create a connection to MongoDB </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">$databases </span><span class="pun">=</span><span class="pln"> $mongo</span><span class="pun">-&gt;</span><span class="pln">listDBs</span><span class="pun">();</span><span class="pln"> </span><span class="com">//List all databases </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">echo </span><span class="str">'&lt;pre&gt;'</span><span class="pun">; </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">print_r</span><span class="pun">(</span><span class="pln">$databases</span><span class="pun">); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">$mongo</span><span class="pun">-&gt;</span><span class="pln">close</span><span class="pun">(); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pun">(</span><span class="typ">MongoConnectionException</span><span class="pln"> $e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{ </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="com">//handle connection error </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="kwd">die</span><span class="pun">(</span><span class="pln">$e</span><span class="pun">-&gt;</span><span class="pln">getMessage</span><span class="pun">()); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pun">} </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pun">?&gt;</span><span class="pln"> </span></span></p></pre><br /></div></div></div><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">如果是连接时用不同的端口，构造函数中用： </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">$mongo &nbsp;= new Mongo($server=&quot;mongodb://localhost:8888&quot;); </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">也可以指定timeout的策略； </span></div> <div> <div id="highlighter_436230" style="margin: 1em 0px; padding: 1px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: 737.54px; height: auto !important; right: auto !important; bottom: auto !important; color: #404040; line-height: 15.39px; font-family: Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace !important; vertical-align: baseline !important; float: none !important; position: relative !important; min-height: inherit !important; background-image: none"> <div style="margin: 0px; padding: 0px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: auto !important; height: auto !important; right: auto !important; bottom: auto !important; line-height: 15.39px; font-size: 1em !important; vertical-align: baseline !important; float: none !important; position: static !important; min-height: inherit !important; background-image: none"> <div style="margin: 0px; padding: 0px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: auto !important; height: auto !important; right: auto !important; bottom: auto !important; line-height: 15.39px; font-size: 1em !important; vertical-align: baseline !important; float: none !important; position: static !important; min-height: inherit !important; background-image: none"><pre class="prettyprint"><p><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> </span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{ </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">$mongo </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Mongo</span><span class="pun">(</span><span class="pln">$options</span><span class="pun">=</span><span class="pln">array</span><span class="pun">(</span><span class="str">'timeout'</span><span class="pun">=&gt;</span><span class="pln"> </span><span class="lit">100</span><span class="pun">)) </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pun">(</span><span class="typ">MongoConnectionException</span><span class="pln"> $e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{ </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="kwd">die</span><span class="pun">(</span><span class="str">&quot;Failed to connect to database &quot;</span><span class="pun">.</span><span class="pln">$e</span><span class="pun">-&gt;</span><span class="pln">getMessage</span><span class="pun">()); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pun">} </span></span></p></pre></div></div></div><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">6 &nbsp;通过PHP保存对象到mongo db中 </span><br /> <div id="highlighter_999685" style="margin: 1em 0px; padding: 1px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: 737.54px; height: auto !important; right: auto !important; bottom: auto !important; color: #404040; line-height: 15.39px; font-family: Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace !important; vertical-align: baseline !important; float: none !important; position: relative !important; min-height: inherit !important; background-image: none"> <div style="margin: 0px; padding: 0px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: auto !important; height: auto !important; right: auto !important; bottom: auto !important; line-height: 15.39px; font-size: 1em !important; vertical-align: baseline !important; float: none !important; position: static !important; min-height: inherit !important; background-image: none"> <div style="margin: 0px; padding: 0px !important; outline: 0px !important; border: 0px currentColor; left: auto !important; top: auto !important; width: auto !important; height: auto !important; right: auto !important; bottom: auto !important; line-height: 15.39px; font-size: 1em !important; vertical-align: baseline !important; float: none !important; position: static !important; min-height: inherit !important; background-image: none"><pre class="prettyprint"><p><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$connection </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Mongo</span><span class="pun">(); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$database &nbsp; </span><span class="pun">=</span><span class="pln"> $connection</span><span class="pun">-&gt;</span><span class="pln">selectDB</span><span class="pun">(</span><span class="str">'myblogsite'</span><span class="pun">); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$collection </span><span class="pun">=</span><span class="pln"> $database</span><span class="pun">-&gt;</span><span class="pln">selectCollection</span><span class="pun">(</span><span class="str">'articles'</span><span class="pun">); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$article &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> array</span><span class="pun">(); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$article</span><span class="pun">[</span><span class="str">'title'</span><span class="pun">] &nbsp; &nbsp; </span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'title'</span><span class="pun">]; </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$article</span><span class="pun">[</span><span class="str">'content'</span><span class="pun">] &nbsp; </span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'content'</span><span class="pun">]; </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$article</span><span class="pun">[</span><span class="str">'saved_at'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoDate</span><span class="pun">(); </span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span></span><br /><span style="color: #000000; line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$collection</span><span class="pun">-&gt;</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">$article</span><span class="pun">); </span></span></p></pre><br /></div></div></div><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">注意的是，默认不用显式create &nbsp;database即可，如果不存在则会自动 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">新建立database,也可以：</span></div><pre class="prettyprint"><p><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$connection </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Mongo</span><span class="pun">(); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$collection </span><span class="pun">=</span><span class="pln"> $connection</span><span class="pun">-&gt;</span><span class="pln">myblogsite</span><span class="pun">-&gt;</span><span class="pln">articles</span><span class="pun">; </span></span></p><p><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="com">// mongodb的插入是异步的，如果不想异步，可以这样； </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="kwd">try</span><span class="pln"> </span><span class="pun">{ </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">$status </span><span class="pun">=</span><span class="pln"> $connection</span><span class="pun">-&gt;</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'title'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'Blog Title'</span><span class="pun">, </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="str">'content'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'Blog Content'</span><span class="pun">), </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">array</span><span class="pun">(</span><span class="str">'safe'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">True</span><span class="pun">)); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">echo </span><span class="str">&quot;Insert operation complete&quot;</span><span class="pun">; </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">MongoCursorException</span><span class="pln"> $e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{ </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="kwd">die</span><span class="pun">(</span><span class="str">&quot;Insert failed &quot;</span><span class="pun">.</span><span class="pln">$e</span><span class="pun">-&gt;</span><span class="pln">getMessage</span><span class="pun">()); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pun">} </span></span></p></pre> <div><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; 则必须等插入完成后才返回给用户，继续执行下一条语句 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; 也可以指定timeout的策略： </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; $collection-&gt;insert($document, array('safe' =&gt; True, </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">'timeout' &nbsp;=&gt; True)); </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">7 &nbsp;设置自己的自增id </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; $document = array('_id' =&gt; hash('sha1', $username.time()), </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; &nbsp;将设置id为username后加上当前时间再hash. </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">8 &nbsp;日期设置 </span></div> <div><span style="line-height: 25px"><br /></span></div> <div><pre class="prettyprint"><p><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$article</span><span class="pun">[</span><span class="str">'saved_at'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoDate</span><span class="pun">(); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$timestamp </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoDate</span><span class="pun">(</span><span class="pln">strtotime</span><span class="pun">(</span><span class="str">'2011-05-21 12:00:00'</span><span class="pun">)); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="kwd">print</span><span class="pln"> date</span><span class="pun">(</span><span class="str">'g:i a, F j'</span><span class="pun">,</span><span class="pln"> $timestamp</span><span class="pun">-&gt;</span><span class="pln">sec</span><span class="pun">);</span><span class="pln"> </span><span class="com">//prints 12 pm, May 21 </span></span></p><p><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><br /></span></p><p><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$lastweek </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoDate</span><span class="pun">(</span><span class="pln">strtotime</span><span class="pun">(</span><span class="str">'-1 week'</span><span class="pun">)); </span><span class="pln"> </span><span class="com">//找出一个星期以来的记录 </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$cursor </span><span class="pun">=</span><span class="pln"> $articleCollection</span><span class="pun">-&gt;</span><span class="pln">find</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'saved_at'</span><span class="pln"> </span><span class="pun">=&gt; </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">array</span><span class="pun">(</span><span class="str">'$gt'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $lastweek</span><span class="pun">))); </span></span></p></pre><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">指定一定范围内的记录： </span></div> <div><span style="line-height: 25px"><br /></span></div> <div><pre class="prettyprint"><p><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$start </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoDate</span><span class="pun">(</span><span class="pln">strtotime</span><span class="pun">(</span><span class="str">'2011-05-01 00:00:00'</span><span class="pun">)); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$end </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoDate</span><span class="pun">(</span><span class="pln">strtotime</span><span class="pun">(</span><span class="str">'2011-05-31 23:59:59'</span><span class="pun">)); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$articleCollection</span><span class="pun">-&gt;</span><span class="pln">find</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'saved_at'</span><span class="pun">=&gt; </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">array</span><span class="pun">(</span><span class="str">'$gte'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $start</span><span class="pun">, </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="str">'$lte'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $end</span><span class="pun">))); </span></span></p></pre><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">9 &nbsp;列出某个表的所有记录 </span></div> <div><pre class="prettyprint"><p><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> $cursor </span><span class="pun">=</span><span class="pln"> $collection</span><span class="pun">-&gt;</span><span class="pln">find</span><span class="pun">(); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> &lt;?php </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$cursor</span><span class="pun">-&gt;</span><span class="pln">hasNext</span><span class="pun">()): </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">$article </span><span class="pun">=</span><span class="pln"> $cursor</span><span class="pun">-&gt;</span><span class="pln">getNext</span><span class="pun">();</span><span class="pln"> </span><span class="pun">?&gt; </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="str">&lt;h2&gt;</span><span class="pun">&lt;?</span><span class="pln">php echo $article</span><span class="pun">[</span><span class="str">'title'</span><span class="pun">];</span><span class="pln"> </span><span class="pun">?&gt;&lt;/</span><span class="pln">h2</span><span class="pun">&gt; </span></span></p></pre><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">找某条记录：$article &nbsp;= $collection-&gt;findOne(array('_id'=&gt; </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"><span style="white-space: pre"> </span>new &nbsp;MongoId($id))); </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">查找时也可以传入多个参数： </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">$moviesCollection-&gt;find(array('genre' &nbsp;=&gt; 'comedy', 'year' =&gt; 2011)); </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">if &nbsp;($cursor-&gt;count() === 0) &nbsp;//如果找不到 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;如果查询多个条件： </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;$collection-&gt;find(array('x' =&gt; array('$gt' =&gt; 100))); </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; //$ is escaped within double quotes (&quot;) </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; $collection-&gt;find(array('x' =&gt; array(&quot;&#92;$gt&quot; =&gt; 100))); </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;注意要用单引号，如果要用双引号，则要加上转义符。 </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">10 &nbsp;排序： </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; &nbsp;$cursor-&gt;sort(array('saved_at' =&gt; -1)) //按save_at字段降序排列，1为升序 </span></div> <div><span style="line-height: 25px"><br /></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">11 &nbsp;skip和limit: </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; &nbsp;</span><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> $cursor </span><span class="pun">=</span><span class="pln"> $articleCollection</span><span class="pun">-&gt;</span><span class="pln">find</span><span class="pun">(); </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> </span><span class="com">//skip the first five articles in the cursor </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> $cursor</span><span class="pun">-&gt;</span><span class="pln">skip</span><span class="pun">(</span><span class="lit">5</span><span class="pun">); </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> $cursor</span><span class="pun">-&gt;</span><span class="pln">limit</span><span class="pun">(</span><span class="lit">10</span><span class="pun">);</span><span class="com">//结果集只取10条 </span></span></p></pre><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">12 &nbsp;更新数据库 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;$articleCollection-&gt;update(array('_id' =&gt; new MongoId($id)), </span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">$article); </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;第一个参数为指定的条件（更新条件），第二个参数为要更新的对象 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">还有可选参数如下； </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;$collection-&gt;update($criteria, $newobj, array('safe' =&gt; True)); </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;safe=true时，等到UPDATE结束才返回结果 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; mongodb还支持upsert的操作：如果存在则更新，如果不存在则插入 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; $users-&gt;update(array('email' =&gt; 'alice@wonderland.com'), </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">array('firstname' &nbsp;=&gt; 'Alice', 'lastname'=&gt; 'Liddell'), </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">array('upsert' &nbsp;=&gt; True)); </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; &nbsp;这里对email为alice@wonderland.com的记录进行更新其firstname,lastname字段的内容 </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">13 &nbsp;修饰符 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp; &nbsp;比如set,只修改记录的某个部分，可以这样： </span></div> <div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> $articles</span><span class="pun">-&gt;</span><span class="pln">update</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="typ">MongoId</span><span class="pun">(</span><span class="str">'4dcd2abe5981'</span><span class="pun">)), </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">array</span><span class="pun">(</span><span class="str">'$set'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'title'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'New </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="str">Title'</span><span class="pun">))); </span></span></p></pre><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;使用inc: </span></div> <div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> $articles</span><span class="pun">-&gt;</span><span class="pln">update</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="typ">MongoId</span><span class="pun">(</span><span class="str">'4dcd2abe5981'</span><span class="pun">)), </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">array</span><span class="pun">(</span><span class="str">'$set'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'content'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'New Content'</span><span class="pun">), </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="white-space: pre"><span class="pln"> </span></span><span class="str">'$inc'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'update_count'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="lit">1</span><span class="pun">))</span></span></p><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pun">); </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="com">// 将update_count+1 </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"><span class="com"> </span></span></p></pre><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; &nbsp;unset: </span></div> <div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> $articles</span><span class="pun">-&gt;</span><span class="pln">update</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="typ">MongoId</span><span class="pun">(</span><span class="str">'4dcd2abe5981'</span><span class="pun">)), </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">array</span><span class="pun">(</span><span class="str">'$unset'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'title'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">True</span><span class="pun">))); </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> </span><span class="com">// 将title field从这个document中移除 </span></span></p></pre><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; 更名rename: </span></div> <div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">$articles</span><span class="pun">-&gt;</span><span class="pln">update</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(), </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">array</span><span class="pun">(</span><span class="str">'$rename'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'saved_at'</span><span class="pln"> </span><span class="pun">=&gt; </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="str">'created_at'</span><span class="pun">)), </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="white-space: pre"><span class="pln"> </span></span><span class="pln">array</span><span class="pun">(</span><span class="str">'multiple'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">True</span><span class="pun">)</span></span></p><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pun">); </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="com">// &nbsp;将save_at更名为create_at </span></span></p></pre><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp;</span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">14 &nbsp;删除记录 </span></div> <div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">$articleCollection</span><span class="pun">-&gt;</span><span class="pln">remove</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoId</span><span class="pun">(</span><span class="pln">$id</span><span class="pun">))); </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">$movies</span><span class="pun">-&gt;</span><span class="pln">remove</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'genre'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="str">'drama'</span><span class="pun">), </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">array</span><span class="pun">(</span><span class="str">'justOne'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">True</span><span class="pun">)); </span></span></p></pre><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; 如果加了justOne的参数，则只删除符合条件的一条记录而已，其他不删除 </span><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">15 &nbsp;document的关系 </span></div> <div><span style="line-height: 25px"><br /></span></div> <div><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">1）嵌套 </span></div> <div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> &nbsp;</span><span class="pun">{ </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="str">&quot;_id&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="typ">ObjectId</span><span class="pun">(</span><span class="str">&quot;4dd491695072aefc456c9aca&quot;</span><span class="pun">), </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="str">&quot;username&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;alphareplicant&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="str">&quot;email&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;roybatty@androids.org&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="str">&quot;fullname&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Roy Batty&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="str">&quot;joined_at&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="typ">ISODate</span><span class="pun">(</span><span class="str">&quot;2011-05-19T03:41:29.703Z&quot;</span><span class="pun">), </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span><span class="pln"> </span></span><span class="str">&quot;address&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="pun">{ </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> &nbsp;</span></span><span class="pln"> </span></span><span class="str">&quot;street&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;13 Tannhauser Gate&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> &nbsp;</span></span><span class="pln"> </span></span><span class="str">&quot;city&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Caprica&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> &nbsp;</span></span><span class="pln"> </span></span><span class="str">&quot;state&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;CC&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> &nbsp;</span></span><span class="pln"> </span></span><span class="str">&quot;zipcode&quot;</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="lit">512</span><span class="pln"> </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span><span class="pln"> </span></span><span class="pun">}, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pun">} </span></span></p></pre><br /><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; 2）引用 </span></div> <div><span style="line-height: 25px"><br /></span></div> <div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> { </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">_id </span><span class="pun">:</span><span class="pln"> </span><span class="typ">ObjectId</span><span class="pun">(</span><span class="str">&quot;4dcd2abe5981aec801010000&quot;</span><span class="pun">), </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">title </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;The only perfect site is hind-site&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">content </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Loren ipsum dolor sit amet&hellip;&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">saved_at </span><span class="pun">:</span><span class="pln"> </span><span class="typ">ISODate</span><span class="pun">(</span><span class="str">'2011-05-16T18:42:57.949Z'</span><span class="pun">), </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">author_id </span><span class="pun">:</span><span class="pln"> </span><span class="typ">ObjectId</span><span class="pun">(</span><span class="str">&quot;4dd491695072aefc456c9aca&quot;</span><span class="pun">) </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pun">} </span></span></p></pre><span style="color: #404040; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"><br /></span></div> <div><span style="color: #404040; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">3）比如一个一对多的关系： </span></div> <div><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; 比如一个文章下的评论：</span></div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> $comment </span><span class="pun">=</span><span class="pln"> array</span><span class="pun">( </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="line-height: 22px"><span class="pln"> </span></span></span><span class="str">'name'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'commenter_name'</span><span class="pun">], </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span style="line-height: 22px"><span class="pln"> </span></span><span class="pln"> </span></span><span class="str">'email'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'commenter_email'</span><span class="pun">], </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span style="line-height: 22px"><span class="pln"> </span></span><span class="pln"> </span></span><span class="str">'comment'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'comment'</span><span class="pun">], </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="line-height: 22px"><span class="pln"> </span></span></span><span class="str">'posted_at'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoDate</span><span class="pun">() </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pun">); </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">$collection</span><span class="pun">-&gt;</span><span class="pln">update</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoId</span><span class="pun">(</span><span class="pln">$id</span><span class="pun">)), </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">array</span><span class="pun">(</span><span class="str">'$push'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'comments'</span><span class="pln"> </span><span class="pun">=&gt; </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln">$comments</span><span class="pun">))); </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"><span class="pun"> </span><span class="pln"> &nbsp;</span></span></p></pre> <div><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"><br /></span></div> <div><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">使用的是$push的修饰符，一般来说，用内嵌的document效率比较高 </span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa">或者： </span><br /><br /><pre class="prettyprint"><p><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$article </span><span class="pun">=</span><span class="pln"> $articleCollection</span><span class="pun">-&gt;</span><span class="pln">findOne</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoId</span><span class="pun">(</span><span class="pln">$id</span><span class="pun">))); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$comments </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$article</span><span class="pun">[</span><span class="str">'comments'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> $article</span><span class="pun">[</span><span class="str">'comments'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> array</span><span class="pun">(); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$comment </span><span class="pun">=</span><span class="pln"> array</span><span class="pun">( </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="str">'name'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'commenter_name'</span><span class="pun">], </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="str">'email'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'commenter_email'</span><span class="pun">], </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="str">'comment'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'comment'</span><span class="pun">], </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="str">'posted_at'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoDate</span><span class="pun">() </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">array_push</span><span class="pun">(</span><span class="pln">$comments</span><span class="pun">,</span><span class="pln"> $comment</span><span class="pun">); </span></span><br /><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$articleCollection</span><span class="pun">-&gt;</span><span class="pln">update</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MongoId</span><span class="pun">(</span><span class="pln">$id</span><span class="pun">)),</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'$set'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'comments'</span><span class="pln"> </span><span class="pun">=&gt; </span></span><span style="line-height: 25.2px; font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal"><span class="pln">$comments</span><span class="pun">))); </span></span><br /></p></pre><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; background-color: #fafafa"> &nbsp; 使用.号来查询子嵌套文档 </span></div> <div><span style="line-height: 25px"><br /></span></div> <div><pre class="prettyprint"><p><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pun">{ </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp; </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">name </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Gordon Freeman&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">address </span><span class="pun">:</span><span class="pln"> </span><span class="pun">{ </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> &nbsp;</span></span></span><span class="pln">city </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Springfield&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> &nbsp;</span></span></span><span class="pln">state </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Florida&quot;</span><span class="pln"> </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pun">} </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pun">} </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> { </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">name </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Lara Croft&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pln">address </span><span class="pun">:</span><span class="pln"> </span><span class="pun">{ </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> &nbsp;</span><span style="white-space: pre"><span class="pln"> &nbsp;</span></span></span><span class="pln">city </span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Miami&quot;</span><span class="pun">, </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> &nbsp;</span></span><span class="pln"> </span></span><span class="pln">state</span><span class="pun">:</span><span class="pln"> </span><span class="str">&quot;Florida&quot;</span><span class="pln"> </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span style="line-height: 22px; white-space: pre"><span class="pln"> </span><span style="white-space: pre"><span class="pln"> </span></span></span><span class="pun">} </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pun">} </span></span><br /><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="com">// 则查询address中state为florida的document: </span></span></p><p><span style="line-height: 25px"><br /></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="pln"> $users</span><span class="pun">-&gt;</span><span class="pln">find</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'address.city'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'Springfield'</span><span class="pun">, </span></span><span style="color: #404040; line-height: 25px; font-family: arial, sans-serif, verdana, helvetica; white-space: normal; background-color: #fafafa"><span class="str">'address.state'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'Florida'</span><span class="pun">)); </span></span></p></pre></div><br/>Tags - <a href="tag.php?tag=mango" rel="tag">mango</a>
]]>
</description>
</item><item>
<link>http://www.bizeway.net/read.php?&amp;guid=0#topreply</link>
<title><![CDATA[[评论] PHP操作MongoDB学习]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.bizeway.net/read.php?&amp;guid=0#topreply</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>