MongoDB PHP教程

来源:互联网 发布:gopro编辑 windows 编辑:程序博客网 时间:2024/06/05 14:52
 MongoDB是可扩展的、高性能的、开源的、文档型的数据库,使用C++编写的。现在有很多的NOSQL数据库。CouchDB、Cassandra和Redis具备了高扩展性和快速的特征,然而安装和设置对于新手来说还是相对比较慢,因为不需要这么高的可扩展性,而且安装相对困难。

MongoDB负载能力介于熟悉的而且易用的MySQL和文档型存储数据库之间。数据库没有设置方案,所以你可以添加、删除和修改文档的结构,不需要更新语句。

安装和设置

安装MongoDB是非常容易的。配置只要创建Mongo数据存储的目录。Windows系统下,默认的位置是C:\data\db和/data/db/*nix。一旦创建了目录,从下载页面下载二级制的Mongolia(http://www.mongodb.org/display/DOCS/Downloads),运行bin/mongod文件。Mongol应该被启动运行。

现在需要安装MongoDB的PHP扩展。如果是在Linux或Mac OS系统上,你可以使用包含在PHP中的pecl工具。命令行输入”sudo pecl install mongo”,这样就会自动pull数据源了,编译,并添加扩展输入到php.ini中。如果Windows系统上需要下载合适的二级制数据源(http://www.mongodb.org/display/DOCS/Installing+the+PHP+Driver#Installing thePHPDriver-WindowsInstall),拷贝php_mongo.dll文件到扩展的目录下,然后在php.ini文件中添加一行”extension=php_mongo.dll”。重启你的web服务器,所有事都会正常运行了。

MongoDB封装
class mongo{public $connection;public $collection;public function __construct($host = 'localhost:27017'){$this->connection = new \Mongo($host);}public function setDatabase($c){$this->db = $this->connection->selectDB($c);}public function setCollection($c){$this->collection = $this->db->selectCollection($c);}public function insert($f){$this->collection->insert($f);}public function get($f){$cursor = $this->collection->find($f);$k = array();$i = 0;while( $cursor->hasNext()){    $k[$i] = $cursor->getNext();$i++;}return $k;}public function update($f1, $f2){$this->collection->update($f1, $f2);}public function getAll(){$cursor = $this->collection->find();foreach ($cursor as $id => $value){echo "$id: ";var_dump( $value );}}public function delete($f, $one = FALSE){$c = $this->collection->remove($f, $one);return $c;}public function ensureIndex($args){return $this->collection->ensureIndex($args);}}

MongoDB 封装的使用

安装了MongoDB,运行写的类,就可以启动与一些数据的交互。我们开始实例化类,然后创建一个新的数据库和集合。数据库和集合都创建在fly上。MongoDB上的集合相当于SQL数据库的数据表,只是有保留数据。

$m = new mongo();$m->setDatabase('query7');$m->setCollection('data');

现在插入一些数据到集合中。主要到教程的数据值是一个数组。MongoDB支持这些数据结构和数据值,这些数据都可以被搜索和查询。

$m->insert(array('url' => 'http://www.query7.com','software' => 'wordpress','tutorials' => array('php','javascript','web development'),));

我们可以做简单的搜索和选择所有”url=http://www.query7.com”的文档,为了找到教程中网站开发的所有文档,我们需要设置教程为索引。想象可以很直接。

$m->get(array('url' => 'http://www.query7.com'));$m->ensureIndex(array('tutorials' => 1);$m->get(array('tutorials' = 'php'));

Array(    [0] => Array        (            [_id] => MongoId Object                (                )            [url] => http://www.query7.com            [software] => wordpress            [tutorials] => Array                (                    [0] => php                    [1] => javascript                    [2] => web development                )        ))

更新是很容易的。第一个参数是被更新数据的条件(类似于SQL中的WHERE),第二个参数是我们要对数据做的更改。注意到第二个参数有个key $set。通过使用$set可以保存文档中剩下的数据。如果你不使用$set,那么整个文档将只包含主要的软件和值wordpress2。

$m->update(array(‘url’=> www.query7.com'), array('$set' => array('software' => 'wordpress2')), true);

最后一步,是删除数据。我们删除数据的方法只用一个参数,条件必须符合。

$m->delete(array('software' => 'wordpress2'));

我希望这篇文章能帮助指导MongoDB多么容易使用。我极力推荐你在下一个项目中试用MongoDB。