初识MongoDB
初识MongoDB
写在前面最近在研究MongoDB,用过mysql,也用过MSSQL,Oracle没用过,但他们都是基于SQL的、基于表的关系型数据库。懂其一,而他的都能略知一二。而MongoDB而是基于文档。那么什么是MongoDB?下面有五件事是PHP开发者应该了解的。
- MongoDB是一个单独的服务器。
- MongoDB是基于文档,而不是基于表。
- MongoDB中较少的Schema。
- 你不需要学习另外的语言。
- 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命令提示,输入:
[plain]- >E:
- E:\>cd MongoDB
- E:\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 安装。
[html]- E:\mongodb\>mongod --logpath E:\mongodb\logs\mongodb.log --logappend --dbpath E:\mongodb\data --directoryperdb --serviceName mongodb --install
我们可以打开我的电脑,查看系统开机进程,发现mongoDB已经加到进程当中,可以停止和重启。
6. mongoDB的简单实用命令。
[html]- E:\mongodb>mongo.exe
- MongoDB shell version: 2.0.2
- connecting to: test
- > show dbs;显示数据
- admin
- local
- > 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 wit
- h 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 f
- urther 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;
- myc
- system.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
- //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";
- }
- ?>
很详细的介绍过程。
评论暂时关闭