sewai.cn sewai.cn

欢迎光临
我们一直在努力
顶部
域名
云服务器48/月

PHP操作MongoDB数据库_PHP教程-php教程-

PHP操作MongoDB数据库

 

 

一、MongoDB简介

MongoDB (名称来自”humongous”) 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。

 

MongoDB特点:

• 面向文档存储(类JSON数据模式简单而强大)
• 动态查询
• 全索引支持,扩展到内部对象和内嵌数组
• 查询记录分析
• 快速,就地更新
• 高效存储二进制大对象 (比如照片和视频)
• 复制和故障切换支持
• Auto-Sharding自动分片支持云级扩展性
• MapReduce 支持复杂聚合
• 商业支持,培训和咨询

 

二、安装MongoDB

安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可

下载地址: https://www.mongodb.org/downloads

本文为windows平台,MongoDB运行命令:>bin/mongod

提示:首先要创建存储数据的文件夹,MongoDB 默认存储数据目录为 /data/db/ (或者 c:datadb),当然你也可以修改成不同目录,只需要指定 –dbpath 参数,

示例:
>bin/mongod –dbpath=d:mgdatadb

更多请参看我的CSDN博客:MongoDB 安装配置

 

三、安装MongoDB PHP扩展

根据自己的PHP版本下载PHP扩展:

http://php.net/manual/en/mongo.installation.php#mongo.installation.nix
http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows

提示:
1、VC6适合Apache、VC9适合IIS;
2、Thread safe适合PHP以模块运行方式、Non-thread safe适合CGI运行方式。
修改php.ini,加入:extension=php_mongo.dll,重启Web服务器。

Ubuntu安装步骤:

1. 下载插件: mongo-php-driver

2. 解压安装:

$ tar zxvf mongodb-mongodb-php-driver-<commit_id&gt;.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id&gt;
$ phpize
$ ./configure
$ make all
$ sudo make install</commit_id&gt;</commit_id&gt;
登录后复制

3. 配置php.ini

#extension=uploadprogress.so
#extension=http.so
#extension=intl.so
#extension=curl.so

extension=/usr/lib/php5/20121212/curl.so
extension=/usr/lib/php5/20121212/gd.so
extension=/usr/lib/php5/20121212/json.so
extension=/usr/lib/php5/20121212/mysql.so
extension=/usr/lib/php5/20121212/mysqli.so
#extension=/usr/lib/php5/20121212/opcache.so
extension=/usr/lib/php5/20121212/pdo.so
extension=/usr/lib/php5/20121212/pdo_mysql.so
#extension=/usr/lib/php5/20121212/readline.so
#extension=/usr/lib/php5/20121212/xdebug.so
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20121212/redis.so
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20121212/mongo.so

4. 重启apache

sudo /etc/init.d/apache2 restart

5. 修改默认启动项目(可选)

sudo vim /etc/apache2/apache2.conf

添加配置代码如下:

1234567891011121314 <virtualhost code=""&gt;<code class="python" keyword=""&gt;*:80&gt; ServerAdmin webmaster@localhost DocumentRoot <code class="python" keyword="">/home<code class="python" keyword="">/homer<code class="python" keyword="">/workspace <directory code=""><code class="python" keyword="">/home<code class="python" keyword="">/homer<code class="python" keyword="">/workspace<code class="python" keyword="">/money_client&gt; DirectoryIndex index.html index.php Options Indexes FollowSymLinks AllowOverride None Require all granted <code class="python" keyword="">/Directory&gt; ServerName localhost DirectoryIndex index.html index.php ErrorLog ${APACHE_LOG_DIR}<code class="python" keyword="">/error_alibuyer.log CustomLog ${APACHE_LOG_DIR}<code class="python" keyword="">/access_alibuyer.log combined<code class="python" keyword="">/VirtualHost&gt;

 

四、PHP示例

1、连接Mongo服务器

1234567891011121314 <!--?php </code--&gt;<code class="php" variable="">$conn = new Mongo(); // 连接localhost:27017 $conn = new Mongo('test.com'); // 连接远程主机默认端口 $conn = new Mongo('test.com:22011'); //连接远程主机22011端口 // MongoDB有用户名密码 $conn = new Mongo(mongodb://${username}:${password}@localhost); // MongoDB有用户名密码并指定数据库blog $conn = new Mongo(mongodb://${username}:${password}@localhost/blog); // 多个服务器 $conn = new Mongo(mongodb://localhost:27017,localhost:27018); ?&gt;

或者使用 MongoClient()

1234567891011121314151617 <!--?php</code--&gt;<code class="php" variable="">$MONGO_SERVER = array( 'host'=&gt;'10.123.55.16', 'port'=&gt;27017, 'dbname'=&gt;'mimvp_money', 'user'=&gt;'', 'pwd'=&gt;''); $count = $coll-&gt;count(); print(count: . $count); $host_port = $MONGO_SERVER['host'] . : . $MONGO_SERVER['port']; // '10.123.55.16:20517' $conn = new MongoClient($host_port); $db = $conn-&gt;selectDB($MONGO_SERVER['dbname']); $coll = new MongoCollection($db, $connName); $conn-&gt;close();?&gt;

 

2、指定数据库和数据集名(表名)

1234 <!--?php </code--><code class="php" variable="">$db = $conn-&gt;blog; // 选择数据库blog $collection = $db-&gt;users; // 制定结果集(表名:users)?&gt;

 

3、CRUD 操作

123456789101112131415 <!--?php </code--><code class="php" variable="">$user = array('name' =&gt; 'caleng', 'email' =&gt; '[email protected]'); // 新增 $collection-&gt;insert($user); $newdata = array('$set' =&gt; array(email =&gt; [email protected])); // 修改 $collection-&gt;update(array(name =&gt; caleng), $newdata); $collection-&gt;remove(array('name'=&gt;'caleng'), array(justOne =&gt; true)); // 删除 $cursor = $collection-&gt;find(); // 查找 var_dump($cursor); $user = $collection-&gt;findOne(array('name' =&gt; 'caleng'), array('email')); // 查找一条 var_dump($user); ?&gt;

 

4、关闭连接

123 <!--?php </code--&gt;<code class="php" variable="">$conn-&gt;close(); ?&gt;

 

五、示例代码

123456789101112131415161718192021222324252627282930313233343536373839 <!--?php </code--><code class="php" comments="">//这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017,如果端口是27017,端口可以省略 $m = new Mongo(); // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m-&gt;selectDB(comedy); $db = $m-&gt;comedy; //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用 $collection = $db-&gt;collection; $db-&gt;selectCollection(collection); //添加一个元素 $obj = array( title =&gt; Calvin and Hobbes-.date('i:s'), author =&gt; Bill Watterson ); //将$obj 添加到$collection 集合中 $collection-&gt;insert($obj); //添加另一个元素 $obj = array( title =&gt; XKCD-.date('i:s'), online =&gt; true ); $collection-&gt;insert($obj); //查询所有的记录 $cursor = $collection-&gt;find(); //遍历所有集合中的文档 foreach ($cursor as $obj) { echo $obj[title] .
; } //删除所有数据 //$collection-&gt;remove(); //删除 name 为hm //$collection-&gt;remove(array('name'=&gt;'hm')); //断开MongoDB连接 $m-&gt;close(); ?&gt;

 

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1065656.htmlTechArticlePHP操作MongoDB数据库 一、MongoDB简介 MongoDB (名称来自humongous) 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库...
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。
-六神源码网 -六神源码网