PHP操作MongoDB数据库

一、MongoDB简介

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

官方站点: https://www.mongodb.org

MongoDB特点:

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

二、安装MongoDB

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

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

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

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

示例:
>bin/mongod –dbpath=d:\mgdata\db

更多请参看我的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>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>
$ phpize
$ ./configure
$ make all
$ sudo make install

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

添加配置代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

<VirtualHost *:80>

    ServerAdmin [email protected]

    DocumentRoot /home/homer/workspace

        <Directory /home/homer/workspace/money_client>

                DirectoryIndex index.html index.php

            Options Indexes FollowSymLinks

            AllowOverride None

            Require all granted

        </Directory>

        ServerName localhost

        DirectoryIndex index.html index.php

    ErrorLog ${APACHE_LOG_DIR}/error_alibuyer.log

    CustomLog ${APACHE_LOG_DIR}/access_alibuyer.log combined

</VirtualHost>

四、PHP示例

1、连接Mongo服务器


1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php  

    $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");     

?>

或者使用 MongoClient()


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<?php

    $MONGO_SERVER = array(    ‘host‘=>‘10.123.55.16‘,

                            ‘port‘=>27017,

                            ‘dbname‘=>‘mimvp_money‘,

                            ‘user‘=>‘‘,

                            ‘pwd‘=>‘‘);

    $count = $coll->count();

    print("count: " . $count);

    

    $host_port = $MONGO_SERVER[‘host‘] . ":" . $MONGO_SERVER[‘port‘];        // ‘10.123.55.16:20517‘

    

    $conn = new MongoClient($host_port);

    $db = $conn->selectDB($MONGO_SERVER[‘dbname‘]);

    $coll = new MongoCollection($db, $connName);

    $conn->close();

?>

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


1

2

3

4

<?php  

    $db = $conn->blog;              // 选择数据库blog

    $collection = $db->users;          // 制定结果集(表名:users)

?> 

3、CRUD 操作


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<?php  

    $user = array(‘name‘ => ‘caleng‘, ‘email‘ => ‘[email protected]‘);              // 新增 

    $collection->insert($user);  

  

    $newdata = array(‘$set‘ => array("email" => "[email protected]"));              // 修改

    $collection->update(array("name" => "caleng"), $newdata);  

  

    $collection->remove(array(‘name‘=>‘caleng‘), array("justOne" => true));      // 删除

 

    $cursor = $collection->find();          // 查找 

    var_dump($cursor);  

  

    $user = $collection->findOne(array(‘name‘ => ‘caleng‘), array(‘email‘));      // 查找一条

    var_dump($user);  

?>

4、关闭连接


1

2

3

<?php  

    $conn->close();  

?>

五、示例代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

<?php

    //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017,如果端口是27017,端口可以省略

    $m = new Mongo();

    // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB("comedy");

    $db = $m->comedy;

    //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用

    $collection = $db->collection;

    $db->selectCollection("collection");

 

    //添加一个元素

    $obj = array( "title" => "Calvin and Hobbes-".date(‘i:s‘), "author" => "Bill Watterson" );

    //将$obj 添加到$collection 集合中

    $collection->insert($obj);

    //添加另一个元素

    $obj = array( "title" => "XKCD-".date(‘i:s‘), "online" => true );

    $collection->insert($obj);

    //查询所有的记录

    $cursor = $collection->find();

    //遍历所有集合中的文档

    foreach ($cursor as $obj)

    {

        echo $obj["title"] . "<br />\n";

    }

    //删除所有数据

    //$collection->remove();

    //删除 name 为hm

    //$collection->remove(array(‘name‘=>‘hm‘));

    //断开MongoDB连接

    $m->close();

?>


PHP操作MongoDB数据库实例

米扑理财: http://money.mimvp.com

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 13:14:59

PHP操作MongoDB数据库的相关文章

node操作MongoDB数据库之插入

在上一篇中我们介绍了MongoDB的安装与配置,接下来的我们来看看在node中怎样操作MongoDB数据库. 在操作数据库之前,首先应该像关系型数据库一样建个数据库把... 启动数据库 利用命令提示符: 1.在创建数据库之前,我们应该启动数据库服务器 mongod --dbpath d:\MongoDB\data 注意:不要关闭这个数据库服务器...不然数据库就被关闭了 2.使用如下语句创建一个数据库 use mydb 这样mongodb会帮助我们自动创建他们,当然这个时候数据库还是空的. 3.

PHP操作MongoDB 数据库总结记录

分类: php mongo 2013-07-18 10:23 623人阅读 评论(0) 收藏 举报 目录(?)[-] 连接MongoDB数据库 选择数据库与表 插入数据记录 更新数据记录 删除记录操作 查询数据记录 关闭链接 常见函数使用 最近有个项目,需要用php操作mongoDb数据,所以了解下mongoDb为此整理了下,常见的操作...... 1,连接MongoDB数据库 [php] view plaincopy $conn = new Mongo(); 其他链接方式 //$conn=ne

不使用spring的情况下原生java代码两种方式操作mongodb数据库

由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常.   主要原因实际上是和mongodb本身无关的,因为他们改的是配置文件的密码,而实际上这个密码在代码中根本就没有使用,他们在代码中已经把用户验证信息写死.   在协助他们解决这个问题的时候,我看到他们代码中在和mongodb数据库交互时使用了已经不被建议使用的方法,于是便抽时间尝试了一下另一种被建议的方式实现各功能.   当然了,生产环境中用的是mongodb集群

PHP操作MongoDB 数据库

最近有个项目,需要用php操作mongoDb数据,整理如下 1,连接MongoDB数据库 $conn = new Mongo(); 其他链接方式 //$conn=new Mongo(); #连接本地主机,默认端口. //$conn=new Mongo(“172.21.15.69″); #连接远程主机 //$conn=new Mongo(“xiaocai.loc:10086″); #连接指定端口远程主机 //$conn=new Mongo(“xiaocai.loc”,array(“replicaS

不使用spring的情况下用java原生代码操作mongodb数据库的两种方式

由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常.   主要原因实际上是和mongodb本身无关的,因为他们改的是配置文件的密码,而实际上这个密码在代码中根本就没有使用,他们在代码中已经把用户验证信息写死.   在协助他们解决这个问题的时候,我看到他们代码中在和mongodb数据库交互时使用了已经不被建议使用的方法,于是便抽时间尝试了一下另一种被建议的方式实现各功能.   当然了,生产环境中用的是mongodb集群

8.3 操作MongoDB数据库

一项权威调查显示,在大数据时代软件开发人员必备的十项技能中MongoDB数据库名列第二,仅次于HTML5.MongoDB是一个基于分布式文件存储的文档数据库,可以说是非关系型(Not Only SQL,NoSQL)数据库中比较像关系型数据库的一个,具有免费.操作简单.面向文档存储.自动分片可扩展性强.查询功能强大等特点,对大数据处理支持较好,旨在为Web应用提供可扩展的高性能数据存储解决方案.MongoDB将数据存储为一个文档,数据结构由键值(key -> value)对组成.MongoDB文档

二十六、Nodejs 操作 MongoDb 数据库

一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --save-dev / cnpm install mongodb --save-dev mongodb官方文档网址: https://docs.mongodb.com/manual/ 进入下面的页面,你就可以选择你使用的开发语言的操作mongodb的文档,注意,一般很难加载出来的... node.js操作

Koa 操作 Mongodb 数据库

node-mongodb-native的介绍 使用基于官方的 node-mongodb-native 驱动,封装一个更小.更快.更灵活的 DB 模块, 让我们用 nodejs 操作 Mongodb 数据库更方便.更灵活. 官方文档:http://mongodb.github.io/node-mongodb-native/ node-mongodb-native的基本使用 安装mongodb npm install mongodb --save 引入mongodb下面的MongoClient va

nodejs操作mongodb数据库的方法

//http://mongodb.github.io/node-mongodb-native/3.0/quick-start/quick-start/ /* nodejs操作mongodb数据库 1.安装mongodb. cnpm install mongodb --save 2.引入mongodb下面的MongoClient var MongoClient = require('mongodb').MongoClient; 3.定义数据库连接的地址 以及配置数据库 qianfeng数据库的名称