MongoDB与PHP

MD,原来那个服务器关了,R,图片和CSS样式全没的,过几天空了补上来
==========================================
最近NoSQL 炒的很火,我也不想Out了,也来凑一下热闹。

目前了解的有Redis、Tokyo Cabinet、MongoDB等NoSQL数据库.前三者都使用过,我比较看好MongoDB。

先看一下mongodb的介绍
Mongodb是 集文档数据库,键值对存储和关系型数据库的优点于一身.

MongoDB (名称来自”humongous”) 是一个可扩展的,高性能,开源,模式自由,面向文档的数据库.使用C++编写,MongoDB特点:

1.面向文档存储(类JSON数据模式简单而强大)

2.动态查询

3.全索引支持,扩展到内部对象和内嵌数组

4. 查询记录分析

5. 快速,就地更新

6. 高效存储二进制大对象 (比如照片和视频)

7.复制和故障切换支持

8.Auto-Sharding自动分片支持云级扩展性

9.MapReduce 支持复杂聚合

10.商业支持,培训和咨询

MongoDB 在键值存储(快速并有高扩展性) 和传统 RDBMS 系统(提供结构化模式和强大的查询)之间建立了一个桥梁.

介绍
MongoDB 是一个面向集合的,模式自由的文档型数据库.

面向集合, 意思是数据被分组到若干集合,这些集合称作聚集(collections). 在数据库里每个聚集有一个唯一的名字,可以包含无限个文档. 聚集是RDBMS中表的同义词,区别是聚集不需要进行模式定义.
模式自由, 意思是数据库并不需要知道你将存入到聚集中的文档的任何结构信息.实际上,你可以在同一个聚集中存储不同结构的文档.
文档型, 意思是我们存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档. 我们把这个数据格式称作 “[BSON]” 即 “Binary Serialized dOcument Notation.”

MongoDB 运行概述
MongoDB 是一个服务器进程可以运行在 Linux, Windows 和OS X等操作系统. 支持 32 和 64位模式,我们推荐使用64位模式,因为在32位模式下Mongo的数据库大小有2GB的限制.

MongoDB 进程默认情况下使用监听端口为 27017 (可以在启动时用命令行参数修改,详细信息参考 [Command Line Parameters] ).
Clients 连接 MongoDB 进程(如果安全认证系统激活的话需要进行用户认证),执行一系列的操作,比如插入,查询,更新等.
MongoDB 使用文件存储数据. (默认位置 /data/db/), 使用内存映射文件进行高效的数据管理.
MongoDB 还能配置成 [自动数据复制], 即 [自动故障切换].
有关 MongoDB 的更多管理信息,参见 [Mongo 管理指南].

MongoDB 功能
对于开发人员, MongoDB 驱动提供了丰富的操作:

查询:基于查询对象或者类SQL语句搜索文档. 查询结果可以排序,进行返回大小限制,可以跳过部分结果集,也可以返回文档的一部分.
插入和更新 : 插入新文档,更新已有文档.
索引管理 : 对文档的一个或者多个键(包括子结构)创建索引,删除索引等等
常用命令: 所有MongoDB 操作都可以通过socket传输的DB命令来执行.
============================================================

官方地址

http://www.mongodb.org/

中文

http://www.mongodb.org/display/DOCSCN/Home

下载地址

http://www.mongodb.org/display/DOCS/Downloads

我这里下载 Linux 32 bit 1.2.4 做测试

下载后直接解压就能用了哈

然后

?View Code PHP
1234
mkdir -p /data/db // mongodb 默认目录存放数据目录cd bin ./mongod

启动成功默认端口是 27017

目前MongoDB支持很多语言

C | C++ | C# | ColdFusion | Erlang | Factor | Java | Javascript | PHP | Python | Ruby | Perl

Mongodb 的提供工具自带客户端也可以直接操作

详细内容可能查看

http://www.mongodb.org/display/DOCS/Overview+-+The+MongoDB+Interactive+Shell

进行了解

下面我们下载下来跟 PHP驱动使用一下

http://www.php.net/manual/en/mongo.installation.php

具体按文档的操作

一步一步安装成功后

然后用phpinfo() 查看一下。

OK PHP的扩展安装完成

下面写代码测试一下

?View Code PHP
12345678910111213141516171819202122232425262728
// connect$m = new Mongo(“mongodb://192.168.179.129:27017”); // select a database$db = $m->comedy;$collection = $db->test; // add an element$obj = array( “title” => “hello world1”, “author” => “summer”,”url”=>”http://www.hucde.com”);$collection->insert($obj); // add another element, with a different “shape”$obj = array( “title” => “hello world2”, “author” => “summer”,”url”=>”http://www.hucde.com” );$collection->insert($obj); // find everything in the collection$cursor = $collection->find(); // iterate through the resultsforeach ($cursor as $obj) {echo $obj[“title”] . ”
“;echo $obj[“author”] . ”
“;echo $obj[“url”] . ”
“;} // disconnect$m->close();

运行mongo.php

成功

其它接口请参照

http://cn2.php.net/manual/en/class.mongodb.php