8.php中MongoD的应用详解(一)

写在前面

上一篇,简单介绍了php中使用MongoDB的简单例子,这一篇还有以后,会详细分析如何在PHP中使用MongoDB。

1,php中连接MongoDB。

在php中连接MongoDB中有很多方法,最简单的就是new 一个mongo对象,就可以连接成功了。

/*
 * php中连接MongoDB.
 * 
 */
$mongo = new Mongo();//实例化了一个Mongo类,并且与默认的localhost:27017端口的本地mongoDB建立连接。
//如果想连接到其他的主机,可以这样写:
$mongo= new Mongo("mongodb://username:password@192.168.1.22:27017");
$mongo->connect(); //这一步,是连接之用,可以省略,因为new mongo()的时候,已经默认连接了。
$mongo->close(); //最后一步,关闭MongoDB数据库,以来释放资源。

2,Mongo类的使用。

我们先看一张图,是官方手册。关于MongoDB的核心类库。我们看第一个,Mongo类的使用。


点击Mongo类连接进去,我们发现Mongo类有很多方法,我们主要讨论最常用到的方法。

  1. public bool Mongo::close ( void )  // 关闭连接
  2. public bool Mongo::connect ( void ) // 进行连接
  3. public array Mongo::dropDB ( mixed$db ) //删除数据库
  4. public array Mongo::listDBs ( void ) //列出所有的数据库
  5. public MongoCollection Mongo::selectCollection( string$db , string$collection ) //选择一个数据库下的集合。
  6. public MongoDB Mongo::selectDB ( string$name ) //选择数据库

那么Mongo类怎么用,如何才能得到Mongo类,才能使用以上的函数。其实,当我们$mongo = new Mongo( ) 的时候,就实例化了一个mongo对象,那么,此时这个$mongo就是一个mongo类了,就可以调用它的以上函数来操作数据库了。

/*
 * php中Mongo类的使用.
 * 
 */
$mongo = new Mongo(); //new 一个mongo类,那么此时,$mongo就是一个mongo类了。

$mongo->connect();  //调用connect方法,来保持连接。
//$mongo->close();  //调用close方法,关闭数据库连接。

$alldb= $mongo->listDBs(); //调用listDBs方法,返回$alldb这个多维数组。显示所有的数据库。

$mongodb = $mongo->selectDB("php"); //调用selectDB(),选择数据库。返回$mongodb,是mongoDB类,等下介绍。
//$mongodb = $mongo->php; //等同selectDB()函数,选择数据库。

$MongoCollection = $mongo->selectCollection("php","blog");//调用selectCollection()方法,这个比较特殊,可以快速选择一个库里面的集合。

$db = $mongo->dropDB("asp");//调用dropDB()方法,来删除某个数据库。
echo "<pre>";
var_dump($all);
echo "</pre>";
通过上面的例子我们可以选择数据库,删除数据库等。但是问题来了,为什么没有创建数据库。其实理论上来讲来讲当,$mongo->php,没有这个库时候,这样子是可以创建一个新的数据库php的。一般我们是数据库中有,我们来选择调用。

3,MongoDB类的使用。

MongoDB类,顾名思义,是选择了数据库后,返回使用的类,即是:$MongoDB = $Mongo->selectDB("php"),$MongoDB 这就是MongoDB类了。

同样,我们点击MongoDB类连接进去,我们也发现MongoDB类有很多方法和常量什么的,我们也主要是讨论最常用到的方法。

  • public MongoCollection MongoDB::selectCollection ( string$name )
  • public array MongoDB::listCollections ( void )
  • public MongoCollection MongoDB::createCollection( string $name [, bool $capped = FALSE [, int$size = 0 [, int$max = 0 ]]] )
  • public array MongoDB::drop ( void )
  • public array MongoDB::command ( array$command [, array$options = array() ] )
  • public array MongoDB::execute ( mixed$code [, array$args = array() ] )

下面看例子。详细说一下上面几个比较重要的函数。

<?php 
/*
 * php中MongoDB类的运用。.
 * 
 */

//连接Mongo数据库。新建一个Mongo对象。
$Mongo = new Mongo();

//选择一个数据库,得到一个MongoDB对象。
$Mongodb = $Mongo->selectDB("asp"); 
//$Mongodb = $Mongo->asp; //和selectDB()一样的效果。

//选择数据库下的一个集合。
$MongoCollection=$Mongodb->selectCollection("blog");//选择php数据库里面的blog集合,如果不存在的话,只要插入数据,也会自动增加,返回一个MongoCollection对象。
//$MongoCollection = $Mongodb->blog;  //和selectCollection()一样的效果。

//列出数据库下所有的集合。
 $allCollection = $Mongodb->listCollections();//返回一个数组,列出所有的集合。 

//创建新的集合。
$MongoCollection = $Mongodb->createCollection("shouji");

//删除这个数据库。
$Mongodb->drop();

//聚合中用到command,相当于原生态MongoDB中的runCommand。
$ages = $Mongodb->command(array("distinct" => "people", "key" => "age")); //运用distinct过滤,后续还有MapReduce复杂运用。

echo "<pre>";
var_dump($MongoCollection);
echo "</pre>";
?>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值