1.初识MongoDB

来源:互联网 发布:怎么卸载mac的flash 编辑:程序博客网 时间:2024/04/29 11:26

写在前面

       最近在研究MongoDB,用过mysql,也用过MSSQL,oracle没用过,但他们都是基于SQL的、基于表的关系型数据库。懂其一,而他的都能略知一二。而MongoDB而是基于文档。那么什么是MongoDB?下面有五件事是PHP开发者应该了解的。(来自于http://database.51cto.com/art/201003/187379.htm)

  1. MongoDB是一个单独的服务器。
  2. MongoDB是基于文档,而不是基于表。
  3. MongoDB中较少的Schema。
  4. 你不需要学习另外的语言。
  5. MongoDB有良好的PHP支持。

一.MongoDB的下载。

1. 下载对应的操作系统的MongoDB。官网下载:http://www.mongodb.org/downloads,我是在windows 32操作系统下使用的,所以下载对应的windows 32版,写这篇文章的时候 最新版本是2.0.2:http://downloads.mongodb.org/win32/mongodb-win32-i386-2.0.2.zip。

2. 下载PHP对应的MongoDB的驱动,以来用PHP来接连MongoD。官网下载:https://github.com/downloads/mongodb/mongo-php-driver/mongo-1.1.4.zip,找到对应的PHP版本,我的是PHP5.2的apache服务器,所以我用是mongo-1.1.4-php5.2vc6ts,(注:vc6代码是apache服务器,vc9表示是微软的IIS服务器。ts表示有线程保护。)

二.MongoDB的安装。

1. 在E盘新建文件夹MongoDB,如:E:\MongoDB,

2.把下载的MongoDB解压,把bin目录的所有文件,复制到MongoDB目录下。

3.在MongoDB目录下新建目录data,新建目录logs,分别来存放数据和日志文件。

如下图所示:


4. 启动mongoDB

打开cmd命令提示,输入:

>E:E:\>cd MongoDBE:\MongoDB >mongod --dbpath E:\mongoDB\data
如下图所示:


这个时候MongoDB就启动了,占用的是27017端口。

在浏览器输入:http://localhost:27017/,可以看到如下图提示:
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number 


说明,MongoDB数据库服务已经成功启动了。

5. 将mongoDB进程加入到windows开机自动启动,免得每次都要执行第4步的动作,还不能关闭命令提示符器。

其中--dbpath 数据库存放的位置,可以存放到多个位置。--logpath 日志的目录。--logappend 日志记录的方式是在旧的日志后追加。--directoryperdb 参数让系统为每个 DB 创建一个独立子目录。--serviceName 服务进程的名字,--install 安装。

E:\mongodb\>mongod --logpath E:\mongodb\logs\mongodb.log --logappend --dbpath E:\mongodb\data --directoryperdb --serviceName mongodb --install
这样执行的日志文件就会全部被记录到E:\MangoDB\logs\mongodb.log文件中了,而且MongoDB也会开机自启动了。


我们可以打开我的电脑,查看系统开机进程,发现mongoDB已经加到进程当中,可以停止和重启。


6. mongoDB的简单实用命令。

E:\mongodb>mongo.exeMongoDB shell version: 2.0.2connecting to: test> show dbs;显示数据adminlocal> help;查看命令提示        db.help()                    help on db methods        db.mycoll.help()             help on collection methods        rs.help()                    help on replica set methods        help connect                 connecting to a db help        help admin                   administrative help        help misc                    misc things to know        show dbs                     show database names        show collections             show collections in current database        show users                   show users in current database        show profile                 show most recent system.profile entries with time >= 1ms        use <db_name>                set current database        db.foo.find()                list objects in collection foo        db.foo.find( { a : 1 } )     list objects in foo where a == 1        it                           result of the last line evaluated; use to further iterate        exit                         quit the mongo shell> use testdb;切换到testdb数据库,如果不存在则在插入数据后会自动创建一个,在data目录下可以看到新增了一个testdb的文件夹switched to db testdb> db.myc.save({a:10});向collection mpc 中保存一条信息,如果不存在collection会自动创建一个> db.myc.find();检索所有记录{ "_id" : ObjectId("4d32c9204e6100000000691e"), "a" : 10 }> show collections;mycsystem.indexes>exit;退出

三. MongoDB与 php 连接。

1.将下载的MongoDB对应php版本的驱动 php_mongo.dll 复制到php安装目录的ext 目录下。

2.打开php的配置文件 php.ini ,加入驱动: extension=php_mongo.dll

3.重启apache服务器,查看phpinfo。

如下图:


说明mongoDB与PHP搭桥成功!

4,用代码测试mongoDB与PHP。

<?php//php连接mongoDB// connect连接$m = new Mongo();// select a database选择一个数据库$db = $m->comedy;// select a collection (analogous to a relational database's table)选一个关联(类似于关联数据库中的一个表)$collection = $db->cartoons;// add a record增加一个记录$obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );$collection->insert($obj);// add another record, with a different "shape"增加另一个记录$obj = array( "title" => "XKCD", "online" => true );$collection->insert($obj);// find everything in the collection查找$cursor = $collection->find();// iterate through the results输出结果。foreach ($cursor as $obj) {echo $obj["title"] . "\n";}?>
输入结果为:Calvin and HobbesXKCD 说明php与mongoDB连接成功!

很详细的介绍过程。



原创粉丝点击