MongoDB PHP


要将MongoDB与PHP一起使用,你需要使用MongoDB PHP驱动程序。从网址下载驱动程序 下载PHP驱动程序 。确保下载它的最新版本。现在解压缩存档,并将php_mongo.dll放入你的PHP扩展目录(默认为“ ext”),并将以下行添加到你的php.ini文件中:

extension = php_mongo.dll

建立连接并选择数据库


要建立连接,你需要指定数据库名称,如果该数据库不存在,则MongoDB会自动创建它。

以下是连接数据库的代码段:

<?php
    //连接到mongodb
    $m = new MongoClient();
	
    echo "Connection to database successfully";
    //选择一个数据库
    $db = $m->mydb;
	
    echo "Database mydb selected";
?>

执行该程序时,将产生以下结果:

Connection to database successfully
Database mydb selected

创建一个集合


以下是创建集合的代码片段:

<?php
    //连接到mongodb
    $m = new MongoClient();
    echo "Connection to database successfully";
	
    //选择一个数据库
    $db = $m->mydb;
    echo "Database mydb selected";
    $collection = $db->createCollection("mycol");
    echo "Collection created succsessfully";
?>

执行该程序时,将产生以下结果:

Connection to database successfully
Database mydb selected
Collection created succsessfully

插入文件


要将文档插入MongoDB,使用insert()方法。

以下是插入文档的代码段:

<?php
    //连接到mongodb
    $m = new MongoClient();
    echo "Connection to database successfully";
	
    //选择一个数据库
    $db = $m->mydb;
    echo "Database mydb selected";
    $collection = $db->mycol;
    echo "Collection selected succsessfully";
	
    $document = array(
        "title" => "MongoDB",
        "description" => "database",
        "likes" => 100,
        "url" => "http:// www.newbiego.com/mongodb/“,
        "by" => "newbiego point"
    );
	
    $collection->insert($document);
    echo "Document inserted successfully";
?>

执行该程序时,将产生以下结果:

Connection to database successfully
Database mydb selected
Collection selected succsessfully
Document inserted successfully

查找所有文档


要从集合中选择所有文档,使用find()方法。

以下是选择所有文档的代码段:

<?php
    //连接到mongodb
    $m = new MongoClient();
    echo "Connection to database successfully";
	
    //选择一个数据库
    $db = $m->mydb;
    echo "Database mydb selected";
    $collection = $db->mycol;
    echo "Collection selected succsessfully";
    $cursor = $collection->find();
    //迭代光标以显示文档标题
	
    foreach ($cursor as $document) {
        echo $document["title"] . "\n";
    }
?>

执行该程序时,将产生以下结果:

Connection to database successfully
Database mydb selected
Collection selected succsessfully {
    "title": "MongoDB"
}

更新文档


要更新文档,需要使用update()方法。

在下面的示例中,我们将插入文档的标题更新为MongoDB教程。以下是更新文档的代码段:

<?php
    //连接到mongodb
    $m = new MongoClient();
    echo "Connection to database successfully";
	
    //选择一个数据库
    $db = $m->mydb;
    echo "Database mydb selected";
    $collection = $db->mycol;
    echo "Collection selected succsessfully";
    //现在更新文档
    $collection->update(array("title"=>"MongoDB"),
        array('$set'=>array("title"=>"MongoDB Tutorial")));
    echo "Document updated successfully";
	
    //现在显示更新的文档
    $cursor = $collection->find();
	
    //迭代光标以显示文档标题
    echo "Updated document";
	
    foreach ($cursor as $document) {
        echo $document["title"] . "\n";
    }
?>

执行该程序时,将产生以下结果:

Connection to database successfully
Database mydb selected
Collection selected succsessfully
Document updated successfully
Updated document {
    "title": "MongoDB Tutorial"
}

删除文档


要删除文档,需要使用remove()方法。

在下面的示例中,我们将删除具有标题的文档MongoDB教程。以下是删除文档的代码段:

<?php
    //连接到mongodb
    $m = new MongoClient();
    echo "Connection to database successfully";
	
    //选择一个数据库
    $db = $m->mydb;
    echo "Database mydb selected";
    $collection = $db->mycol;
    echo "Collection selected succsessfully";
   
    //现在删除文档
    $collection->remove(array("title"=>"MongoDB Tutorial"),false);
    echo "Documents deleted successfully";
   
    //现在显示可用的文档
    $cursor = $collection->find();
	
    //迭代光标以显示文档标题
    echo "Updated document";
	
    foreach ($cursor as $document) {
        echo $document["title"] . "\n";
    }
?>

执行该程序时,将产生以下结果:

Connection to database successfully
Database mydb selected
Collection selected successfully
Documents deleted successfully

在上面的示例中,第二个参数是布尔类型,是remove()方法的justOne参数的值。

其余的MongoDB方法findOne()、save()、limit()、skip()、sort()等的工作原理与上述相同。