PHP_PHP による MongoDB データベースの操作チュートリアル
- WBOYオリジナル
- 2016-07-12 09:06:151321ブラウズ
<p></p>
<h2>PHPはMongoDBデータベースを操作します</h2>
<p> </p>
<p> </p>
<p><strong>1. MongoDB の概要</strong></p>
<p>MongoDB (名前は「巨大な」に由来) は、ドキュメント データベース、キー/値ストレージ、リレーショナル データベースの利点を組み合わせた、スケーラブルで高性能、オープン ソース、スキーマフリーのドキュメント指向データベースです。 </p>
<p><b></b></p>
<p><strong>MongoDB の機能:</strong></p>
<p>• ドキュメント指向のストレージ (JSON のようなデータ スキーマはシンプルかつ強力です)<br>
• 動的クエリ<br>
• 内部オブジェクトと埋め込み配列に拡張された完全なインデックスのサポート <br>
• クエリレコード分析<br>
• 迅速なインプレース更新 <br>
• バイナリの大きなオブジェクト (写真やビデオなど) を効率的に保存します<br>
• レプリケーションとフェイルオーバーのサポート <br>
• 自動シャーディングはクラウドレベルのスケーラビリティをサポートします<br>
• MapReduce は複雑な集計をサポートします<br>
• ビジネスサポート、トレーニング、コンサルティング </p>
<p> </p>
<p><strong>2. MongoDB をインストールします</strong></p>
<p>MongoDB のインストールは非常に簡単です。圧縮パッケージをダウンロードし、解凍してコマンドを実行するだけです</p>
<p><strong>ダウンロードアドレス: </strong> https://www.mongodb.org/downloads</p>
<p>この記事は Windows プラットフォーム、MongoDB 実行コマンド: >bin/mongod を対象としています</p>
<p>ヒント: まず、データを保存するフォルダーを作成します。MongoDB のデフォルトのデータ保存ディレクトリは /data/db/ (または c:datadb) です。もちろん、–dbpath パラメーターを指定して、別のディレクトリに変更することもできます。
</p>
<p>例: <strong></strong>
>bin/mongod –dbpath=d:mgdatadb<br>
</p>詳細については、私の CSDN ブログ「MongoDB のインストールと構成」を参照してください<p>
</p> <p>
</p>
<p>3. MongoDB PHP 拡張機能をインストールします<strong></strong>
</p>PHP バージョンに応じて PHP 拡張機能をダウンロードします: <p>
</p>http://php.net/manual/en/mongo.installation.php#mongo.installation.nix<p>
http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows<br>
</p>ヒント:<p>
1. VC6 は Apache に適しており、VC9 は IIS に適しています。
2. スレッド セーフはモジュール モードで実行される PHP に適しており、非スレッド セーフは CGI 実行モードに適しています。 <br>
php.ini を変更し、extension=php_mongo.dll を追加して、Web サーバーを再起動します。 <br>
<br>Ubuntuのインストール手順:</p>
<p>1. プラグインをダウンロードします: mongo-php-driver</p>
<p>2. 解凍してインストールします: </p>
リーリー
<p>3.php.iniを設定する</p>
<p>#extension=uploadprogress.so</p>
#extension=http.so<p>
#extension=intl.so<br>
#extension=curl.so<br>
<br>拡張子=/usr/lib/php5/20121212/curl.so</p>
拡張子=/usr/lib/php5/20121212/gd.so<p>
拡張子=/usr/lib/php5/20121212/json.so<br>
拡張子=/usr/lib/php5/20121212/mysql.so<br>
拡張子=/usr/lib/php5/20121212/mysqli.so<br>
#extension=/usr/lib/php5/20121212/opcache.so<br>
拡張子=/usr/lib/php5/20121212/pdo.so<br>
拡張子=/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<br>
<br>4.Apacheを再起動します</p>
<p>sudo /etc/init.d/apache2 再起動</p>
<p>5. デフォルトの起動項目を変更します(オプション)</p>
<p>sudo vim /etc/apache2/apache2.conf</p>
<p>次のように構成コードを追加します: </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 の例</strong></p>
<p><strong>1. Mongoサーバーに接続します</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>または、<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. データベースとデータセット名</strong> (テーブル名) を指定します。
</p>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>1234<td class="gutter">
</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>
<p> </p>
<p><strong>3. CRUD操作</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. 接続を閉じます</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. サンプルコード</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">技術記事</span><span id="description" itemprop="description"> MongoDB データベースの PHP 操作 1. MongoDB の概要 MongoDB (名前の由来は humongous) は、スケーラブルで高性能、オープンソース、フリーモードのドキュメント指向データベースであり、ドキュメント データベースを統合します...</span>
</div>
<div class="art_confoot"></div>
</table>
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。