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类有很多方法,我们主要讨论最常用到的方法。
public bool Mongo::close (void ) // 关闭连接
public bool Mongo::connect (void ) // 进行连接
public array Mongo::dropDB (mixed$db ) //删除数据库
public array Mongo::listDBs (void ) //列出所有的数据库
public MongoCollection Mongo::selectCollection(string$db , string$collection ) //选择一个数据库下的集合。
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 "
";";
var_dump($all);
echo "
通过上面的例子我们可以选择数据库,删除数据库等。但是问题来了,为什么没有创建数据库。其实理论上来讲来讲当,$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中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 "
";";
var_dump($MongoCollection);
echo "
?>
PHP程序中使用MongoD详解