Home > Backend Development > PHP Tutorial > Operating MongoDB database with PHP_PHP tutorial

Operating MongoDB database with PHP_PHP tutorial

WBOY
Release: 2016-07-12 09:06:15
Original
1317 people have browsed it
<p></p> <h2>PHP operates MongoDB database</h2> <p> </p> <p> </p> <p><strong>1. Introduction to MongoDB</strong></p> <p>MongoDB (the name comes from "humongous") is a scalable, high-performance, open source, schema-free, document-oriented database that combines the advantages of document databases, key-value storage and relational databases. </p> <p><b> </b></p> <p><strong>MongoDB features: </strong></p> <p>• Document-oriented storage (JSON-like data schema is simple and powerful)<br> • Dynamic query<br> • Full index support, extended to internal objects and embedded arrays <br> • Query record analysis<br> • Fast, in-place updates <br> • Efficiently store binary large objects (such as photos and videos) <br> • Replication and failover support<br> • Auto-Sharding supports cloud-level scalability<br> • MapReduce supports complex aggregations <br> • Business support, training and consulting</p> <p> </p> <p><strong>2. Install MongoDB</strong></p> <p>Installing MongoDB is very simple, just download the compressed package, decompress it and run the command </p> <p><strong>Download address: </strong> https://www.mongodb.org/downloads</p> <p>This article is for Windows platform, MongoDB running command: >bin/mongod</p> <p>Tip: First create a folder to store data. MongoDB’s default data storage directory is /data/db/ (or c:datadb). Of course, you can also change it to a different directory by specifying the –dbpath parameter. </p> <p><strong> Example: </strong><br> >bin/mongod –dbpath=d:mgdatadb</p> <p>For more information, please refer to my CSDN blog: MongoDB installation configuration</p> <p> </p> <p><strong>3. Install MongoDB PHP extension </strong></p> <p>Download the PHP extension according to your PHP version: </p> <p>http://php.net/manual/en/mongo.installation.php#mongo.installation.nix<br> http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows</p> <p>Tips: <br> 1. VC6 is suitable for Apache and VC9 is suitable for IIS; <br> 2. Thread safe is suitable for PHP running in module mode, and Non-thread safe is suitable for CGI running mode. <br> Modify php.ini, add: extension=php_mongo.dll, and restart the web server. </p> <p>Ubuntu installation steps: </p> <p>1. Download the plug-in: mongo-php-driver</p> <p>2. Unzip and install: </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="code"> $ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz $ cd mongodb-mongodb-php-driver-<commit_id> $ phpize $ ./configure $ make all $ sudo make install</commit_id></commit_id></pre><div class="contentsignin">Copy after login</div></div> <p>3. Configure php.ini</p> <p>#extension=uploadprogress.so<br> #extension=http.so<br> #extension=intl.so<br> #extension=curl.so</p> <p>extension=/usr/lib/php5/20121212/curl.so<br> extension=/usr/lib/php5/20121212/gd.so<br> extension=/usr/lib/php5/20121212/json.so<br> extension=/usr/lib/php5/20121212/mysql.so<br> extension=/usr/lib/php5/20121212/mysqli.so<br> #extension=/usr/lib/php5/20121212/opcache.so<br> extension=/usr/lib/php5/20121212/pdo.so<br> extension=/usr/lib/php5/20121212/pdo_mysql.so<br> #extension=/usr/lib/php5/20121212/readline.so<br> #extension=/usr/lib/php5/20121212/xdebug.so<br> extension=/usr/local/lib/php/extensions/no-debug-non-zts-20121212/redis.so<br> extension=/usr/local/lib/php/extensions/no-debug-non-zts-20121212/mongo.so</p> <p>4. Restart apache</p> <p>sudo /etc/init.d/apache2 restart</p> <p>5. Modify the default startup items (optional) </p> <p>sudo vim /etc/apache2/apache2.conf</p> <p>Add the configuration code as follows: </p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="gutter">1234567891011121314</td> <td class="code"><code class="python" plain=""><virtualhost code=""><code class="python" keyword="">*</code><code class="python" plain="">:</code><code class="python" value="">80</code><code class="python" plain="">></code><code class="python" spaces=""> </code><code class="python" plain="">ServerAdmin webmaster@localhost</code><code class="python" spaces=""> </code><code class="python" plain="">DocumentRoot </code><code class="python" keyword="">/</code><code class="python" plain="">home</code><code class="python" keyword="">/</code><code class="python" plain="">homer</code><code class="python" keyword="">/</code><code class="python" plain="">workspace</code><code class="python" spaces=""> </code><code class="python" plain=""><directory code=""><code class="python" keyword="">/</code><code class="python" plain="">home</code><code class="python" keyword="">/</code><code class="python" plain="">homer</code><code class="python" keyword="">/</code><code class="python" plain="">workspace</code><code class="python" keyword="">/</code><code class="python" plain="">money_client></code><code class="python" spaces=""> </code><code class="python" plain="">DirectoryIndex index.html index.php</code><code class="python" spaces=""> </code><code class="python" plain="">Options Indexes FollowSymLinks</code><code class="python" spaces=""> </code><code class="python" plain="">AllowOverride </code><code class="python" color1="">None</code><code class="python" spaces=""> </code><code class="python" plain="">Require </code><code class="python" functions="">all</code> <code class="python" plain="">granted</code><code class="python" spaces=""> </code><code class="python" plain=""><</code><code class="python" keyword="">/</code><code class="python" plain="">Directory></code><code class="python" spaces=""> </code><code class="python" plain="">ServerName localhost</code><code class="python" spaces=""> </code><code class="python" plain="">DirectoryIndex index.html index.php</code><code class="python" spaces=""> </code><code class="python" plain="">ErrorLog ${APACHE_LOG_DIR}</code><code class="python" keyword="">/</code><code class="python" plain="">error_alibuyer.log</code><code class="python" spaces=""> </code><code class="python" plain="">CustomLog ${APACHE_LOG_DIR}</code><code class="python" keyword="">/</code><code class="python" plain="">access_alibuyer.log combined</code><code class="python" plain=""><</code><code class="python" keyword="">/</code><code class="python" plain="">VirtualHost></code></directory></code></virtualhost></code></td> </tr> </tbody> </table> <p> </p> <p><strong>4. PHP example</strong></p> <p><strong>1. Connect to Mongo server </strong></p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="gutter">1234567891011121314</td> <td class="code"><code class="php" plain=""><!--?php </code--><code class="php" variable="">$conn</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">Mongo(); </code><code class="php" comments="">// 连接localhost:27017</code><code class="php" spaces=""> </code><code class="php" variable="">$conn</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">Mongo(</code><code class="php" string="">'test.com'</code><code class="php" plain="">); </code><code class="php" comments="">// 连接远程主机默认端口 </code><code class="php" spaces=""> </code><code class="php" variable="">$conn</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">Mongo(</code><code class="php" string="">'test.com:22011'</code><code class="php" plain="">); </code><code class="php" comments="">//连接远程主机22011端口</code> <code class="php" spaces=""> </code><code class="php" comments="">// MongoDB有用户名密码</code><code class="php" spaces=""> </code><code class="php" variable="">$conn</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">Mongo(</code><code class="php" string="">mongodb://${username}:${password}@localhost</code><code class="php" plain="">); </code> <code class="php" spaces=""> </code><code class="php" comments="">// MongoDB有用户名密码并指定数据库blog </code><code class="php" spaces=""> </code><code class="php" variable="">$conn</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">Mongo(</code><code class="php" string="">mongodb://${username}:${password}@localhost/blog</code><code class="php" plain="">);</code><code class="php" spaces=""> </code> <code class="php" spaces=""> </code><code class="php" comments="">// 多个服务器</code><code class="php" spaces=""> </code><code class="php" variable="">$conn</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">Mongo(</code><code class="php" string="">mongodb://localhost:27017,localhost:27018</code><code class="php" plain="">); </code><code class="php" plain="">?></code></code></td> </tr> </tbody> </table> <p>Or use <strong> MongoClient()</strong></p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="gutter">1234567891011121314151617</td> <td class="code"><code class="php" plain=""><!--?php</code--><code class="php" variable="">$MONGO_SERVER</code> <code class="php" plain="">= </code><code class="php" keyword="">array</code><code class="php" plain="">( </code><code class="php" string="">'host'</code><code class="php" plain="">=></code><code class="php" string="">'10.123.55.16'</code><code class="php" plain="">,</code><code class="php" spaces=""> </code><code class="php" string="">'port'</code><code class="php" plain="">=>27017,</code><code class="php" spaces=""> </code><code class="php" string="">'dbname'</code><code class="php" plain="">=></code><code class="php" string="">'mimvp_money'</code><code class="php" plain="">,</code><code class="php" spaces=""> </code><code class="php" string="">'user'</code><code class="php" plain="">=></code><code class="php" string="">''</code><code class="php" plain="">,</code><code class="php" spaces=""> </code><code class="php" string="">'pwd'</code><code class="php" plain="">=></code><code class="php" string="">''</code><code class="php" plain="">);</code> <code class="php" spaces=""> </code><code class="php" variable="">$count</code> <code class="php" plain="">= </code><code class="php" variable="">$coll</code><code class="php" plain="">-></code><code class="php" functions="">count</code><code class="php" plain="">();</code><code class="php" spaces=""> </code><code class="php" functions="">print</code><code class="php" plain="">(</code><code class="php" string="">count: </code> <code class="php" plain="">. </code><code class="php" variable="">$count</code><code class="php" plain="">);</code><code class="php" spaces=""> </code> <code class="php" spaces=""> </code><code class="php" variable="">$host_port</code> <code class="php" plain="">= </code><code class="php" variable="">$MONGO_SERVER</code><code class="php" plain="">[</code><code class="php" string="">'host'</code><code class="php" plain="">] . </code><code class="php" string="">:</code> <code class="php" plain="">. </code><code class="php" variable="">$MONGO_SERVER</code><code class="php" plain="">[</code><code class="php" string="">'port'</code><code class="php" plain="">]; </code><code class="php" comments="">// '10.123.55.16:20517'</code><code class="php" spaces=""> </code> <code class="php" spaces=""> </code><code class="php" variable="">$conn</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">MongoClient(</code><code class="php" variable="">$host_port</code><code class="php" plain="">);</code><code class="php" spaces=""> </code><code class="php" variable="">$db</code> <code class="php" plain="">= </code><code class="php" variable="">$conn</code><code class="php" plain="">->selectDB(</code><code class="php" variable="">$MONGO_SERVER</code><code class="php" plain="">[</code><code class="php" string="">'dbname'</code><code class="php" plain="">]);</code><code class="php" spaces=""> </code><code class="php" variable="">$coll</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">MongoCollection(</code><code class="php" variable="">$db</code><code class="php" plain="">, </code><code class="php" variable="">$connName</code><code class="php" plain="">);</code><code class="php" spaces=""> </code><code class="php" variable="">$conn</code><code class="php" plain="">->close();</code><code class="php" plain="">?></code></code></td> </tr> </tbody> </table> <p> </p> <p><strong>2. Specify database and data set name </strong> (table name) </p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="gutter">1234</td> <td class="code"><code class="php" plain=""><!--?php </code--><code class="php" variable="">$db</code> <code class="php" plain="">= </code><code class="php" variable="">$conn</code><code class="php" plain="">->blog; </code><code class="php" comments="">// 选择数据库blog</code><code class="php" spaces=""> </code><code class="php" variable="">$collection</code> <code class="php" plain="">= </code><code class="php" variable="">$db</code><code class="php" plain="">->users; </code><code class="php" comments="">// 制定结果集(表名:users)</code><code class="php" plain="">?> </code></code></td> </tr> </tbody> </table> <p> </p> <p><strong>3. CRUD operation</strong></p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="gutter">123456789101112131415</td> <td class="code"><code class="php" plain=""><!--?php </code--><code class="php" variable="">$user</code> <code class="php" plain="">= </code><code class="php" keyword="">array</code><code class="php" plain="">(</code><code class="php" string="">'name'</code> <code class="php" plain="">=> </code><code class="php" string="">'caleng'</code><code class="php" plain="">, </code><code class="php" string="">'email'</code> <code class="php" plain="">=> </code><code class="php" string="">'[email protected]'</code><code class="php" plain="">); </code><code class="php" comments="">// 新增 </code><code class="php" spaces=""> </code><code class="php" variable="">$collection</code><code class="php" plain="">->insert(</code><code class="php" variable="">$user</code><code class="php" plain="">); </code><code class="php" spaces=""> </code> <code class="php" spaces=""> </code><code class="php" variable="">$newdata</code> <code class="php" plain="">= </code><code class="php" keyword="">array</code><code class="php" plain="">(</code><code class="php" string="">'$set'</code> <code class="php" plain="">=> </code><code class="php" keyword="">array</code><code class="php" plain="">(</code><code class="php" string="">email</code> <code class="php" plain="">=> </code><code class="php" string="">[email protected]</code><code class="php" plain="">)); </code><code class="php" comments="">// 修改</code><code class="php" spaces=""> </code><code class="php" variable="">$collection</code><code class="php" plain="">->update(</code><code class="php" keyword="">array</code><code class="php" plain="">(</code><code class="php" string="">name</code> <code class="php" plain="">=> </code><code class="php" string="">caleng</code><code class="php" plain="">), </code><code class="php" variable="">$newdata</code><code class="php" plain="">); </code><code class="php" spaces=""> </code> <code class="php" spaces=""> </code><code class="php" variable="">$collection</code><code class="php" plain="">->remove(</code><code class="php" keyword="">array</code><code class="php" plain="">(</code><code class="php" string="">'name'</code><code class="php" plain="">=></code><code class="php" string="">'caleng'</code><code class="php" plain="">), </code><code class="php" keyword="">array</code><code class="php" plain="">(</code><code class="php" string="">justOne</code> <code class="php" plain="">=> true)); </code><code class="php" comments="">// 删除</code><code class="php" spaces=""> </code> <code class="php" spaces=""> </code><code class="php" variable="">$cursor</code> <code class="php" plain="">= </code><code class="php" variable="">$collection</code><code class="php" plain="">->find(); </code><code class="php" comments="">// 查找 </code><code class="php" spaces=""> </code><code class="php" plain="">var_dump(</code><code class="php" variable="">$cursor</code><code class="php" plain="">); </code><code class="php" spaces=""> </code> <code class="php" spaces=""> </code><code class="php" variable="">$user</code> <code class="php" plain="">= </code><code class="php" variable="">$collection</code><code class="php" plain="">->findOne(</code><code class="php" keyword="">array</code><code class="php" plain="">(</code><code class="php" string="">'name'</code> <code class="php" plain="">=> </code><code class="php" string="">'caleng'</code><code class="php" plain="">), </code><code class="php" keyword="">array</code><code class="php" plain="">(</code><code class="php" string="">'email'</code><code class="php" plain="">)); </code><code class="php" comments="">// 查找一条</code><code class="php" spaces=""> </code><code class="php" plain="">var_dump(</code><code class="php" variable="">$user</code><code class="php" plain="">); </code><code class="php" plain="">?></code></code></td> </tr> </tbody> </table> <p> </p> <p><strong>4. Close the connection </strong></p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="gutter">123</td> <td class="code"><code class="php" plain=""><!--?php </code--><code class="php" variable="">$conn</code><code class="php" plain="">->close(); </code><code class="php" plain="">?></code></code></td> </tr> </tbody> </table> <p> </p> <p><strong>5. Sample code</strong></p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="gutter">123456789101112131415161718192021222324252627282930313233343536373839</td> <td class="code"><code class="php" plain=""><!--?php </code--><code class="php" comments="">//这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017,如果端口是27017,端口可以省略 </code><code class="php" spaces=""> </code><code class="php" variable="">$m</code> <code class="php" plain="">= </code><code class="php" keyword="">new</code> <code class="php" plain="">Mongo(); </code> <code class="php" spaces=""> </code><code class="php" comments="">// 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB(comedy); </code><code class="php" spaces=""> </code><code class="php" variable="">$db</code> <code class="php" plain="">= </code><code class="php" variable="">$m</code><code class="php" plain="">->comedy; </code> <code class="php" spaces=""> </code><code class="php" comments="">//选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用 </code><code class="php" spaces=""> </code><code class="php" variable="">$collection</code> <code class="php" plain="">= </code><code class="php" variable="">$db</code><code class="php" plain="">->collection; </code><code class="php" spaces=""> </code><code class="php" variable="">$db</code><code class="php" plain="">->selectCollection(</code><code class="php" string="">collection</code><code class="php" plain="">);</code><code class="php" spaces=""> </code> <code class="php" spaces=""> </code><code class="php" comments="">//添加一个元素 </code><code class="php" spaces=""> </code><code class="php" variable="">$obj</code> <code class="php" plain="">= </code><code class="php" keyword="">array</code><code class="php" plain="">( </code><code class="php" string="">title</code> <code class="php" plain="">=> </code><code class="php" string="">Calvin and Hobbes-</code><code class="php" plain="">.</code><code class="php" functions="">date</code><code class="php" plain="">(</code><code class="php" string="">'i:s'</code><code class="php" plain="">), </code><code class="php" string="">author</code> <code class="php" plain="">=> </code><code class="php" string="">Bill Watterson</code> <code class="php" plain="">); </code> <code class="php" spaces=""> </code><code class="php" comments="">//将$obj 添加到$collection 集合中 </code><code class="php" spaces=""> </code><code class="php" variable="">$collection</code><code class="php" plain="">->insert(</code><code class="php" variable="">$obj</code><code class="php" plain="">); </code> <code class="php" spaces=""> </code><code class="php" comments="">//添加另一个元素 </code><code class="php" spaces=""> </code><code class="php" variable="">$obj</code> <code class="php" plain="">= </code><code class="php" keyword="">array</code><code class="php" plain="">( </code><code class="php" string="">title</code> <code class="php" plain="">=> </code><code class="php" string="">XKCD-</code><code class="php" plain="">.</code><code class="php" functions="">date</code><code class="php" plain="">(</code><code class="php" string="">'i:s'</code><code class="php" plain="">), </code><code class="php" string="">online</code> <code class="php" plain="">=> true ); </code><code class="php" spaces=""> </code><code class="php" variable="">$collection</code><code class="php" plain="">->insert(</code><code class="php" variable="">$obj</code><code class="php" plain="">); </code> <code class="php" spaces=""> </code><code class="php" comments="">//查询所有的记录 </code><code class="php" spaces=""> </code><code class="php" variable="">$cursor</code> <code class="php" plain="">= </code><code class="php" variable="">$collection</code><code class="php" plain="">->find(); </code> <code class="php" spaces=""> </code><code class="php" comments="">//遍历所有集合中的文档 </code><code class="php" spaces=""> </code><code class="php" keyword="">foreach</code> <code class="php" plain="">(</code><code class="php" variable="">$cursor</code> <code class="php" keyword="">as</code> <code class="php" variable="">$obj</code><code class="php" plain="">) </code><code class="php" spaces=""> </code><code class="php" plain="">{ </code><code class="php" spaces=""> </code><code class="php" functions="">echo</code> <code class="php" variable="">$obj</code><code class="php" plain="">[</code><code class="php" string="">title</code><code class="php" plain="">] . </code><br><code class="php" plain="">; </code><code class="php" spaces=""> </code><code class="php" plain="">} </code> <code class="php" spaces=""> </code><code class="php" comments="">//删除所有数据 </code><code class="php" spaces=""> </code><code class="php" comments="">//$collection->remove(); </code> <code class="php" spaces=""> </code><code class="php" comments="">//删除 name 为hm </code><code class="php" spaces=""> </code><code class="php" comments="">//$collection->remove(array('name'=>'hm')); </code> <code class="php" spaces=""> </code><code class="php" comments="">//断开MongoDB连接 </code><code class="php" spaces=""> </code><code class="php" variable="">$m</code><code class="php" plain="">->close(); </code><code class="php" plain="">?></code></code></td> </tr> </tbody> </table> <p> </p> <p><b> </b></p> <p align="left"></p> <div style="display:none;"> <span id="url" itemprop="url">http://www.bkjia.com/PHPjc/1065656.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http: //www.bkjia.com/PHPjc/1065656.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">PHP operating MongoDB database 1. Introduction to MongoDB MongoDB (the name comes from humongous) is a scalable, high-performance, open source , model-free, document-oriented database, integrated document database...</span> </div> <div class="art_confoot"></div>
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template