PHP与MongoDB数据库的连接和交互操作实例
-
一、操作环境搭建
这篇文章主要介绍了Windows下PHP对MongoDB数据库的连接、添加、修改、查询、删除等操作实例,需要的朋友可以参考下。
在php中使用mongodb你必须使用 mongodb 的 php驱动,PHP 扩展mongon.mod.dll,下载地址:http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows
下载完你需要的二进制包后,解压压缩包,将'php_mongo.dll'文件添加到你的PHP扩展目录中(ext)。ext目录通常在PHP安装目录下的ext目录。 然后php.ini添加extension=php_mongo.dll ,重启服务器。通过浏览器访问phpinfo,如果安装成功,就会看到类型以下的信息:
表明PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器)
二、连接数据库
使用下面的代码创建一个数据库链接代码如下: <?php $connection = new Mongo(mongodb://192.168.1.5:27017); //链接到 192.168.1.5:27017 , 27017端口是默认的。 $connection = new Mongo( "example.com" ); //链接到远程主机(默认端口) $connection = new Mongo( "example.com:65432" ); //链接到远程主机的自定义的端口 print_r($connection->listDBs());//能打印出数据库数组。 ?>
看见ok表示运行成功。现在你可以使用$connection链接来操作数据库了
三、选择数据库
使用下面的代码来选择一个数据库代码如下: <?php $db = $connection->dbname; ?>
这里的数据库并不一定是一个已经存在的数据库,如果所选择的数据库不存在,则会新建一个数据库,所以在选择数据库的时候,注意一定要填上正确的数据库名
如果拼写错误的话,很有可能会新建一个数据库。四、获取一个集合
获取一个集合跟选择数据库拥有相同的语法格式代码如下: <?php $db = $connection->test;//选择数据库 $collection = $db->foobar;//选择foobar集合 //或者使用更简洁的方式 $collection = $connection->test->foobar; ?>
五、插入一个文档
多维数组是可以被储存到数据库中的基本单元,一个随机的文档可能是这样。代码如下: <?php $doc = array( ”name” => “MongoDB”, “type” => “database”, “count” => 1, “info” => (object)array( “x” => 203, “y” => 102), “versions” => array(“0.9.7″, “0.9.8″, “0.9.9″) ); ?>
注意:你可以嵌套数组与对象,对象与文档在mongodb中几乎是一样的,你可以使用$doc调用一个文档或对象,但是info字段总是一个对象而不是一个文档,本约束适用于所有文档,然后使用MongoCollection::insert()插入一个文档
代码如下: <?php $collection->insert($doc); ?>
六、查询文档
为了证明上面那段代码的数据已经插入到数据库里了,我们进行简单的 findOne()操作以得到集合中的第一个文档数据,这种方法只返回一个文档数据,这种方法适用于在你的查询语句的时候只匹配一个文档或者你只关心第一条数据。代码如下: <?php $obj = $collection->findOne(); var_dump( $obj ); ?>
读者可自行运行下代码验证结果。
为了得到集合中的所有文档,我们可以使用 MongoCollection::find()方法,find()方法返回一个 MongoCursor对象,可以让我们重复得到查询所匹配的的文档。代码如下: <?php $cursor = $collection->find(); foreach ($cursor as $id => $value) { echo “$id: “; var_dump( $value ); } ?>
七、修改文档
我们可以使用update进行修改操作。代码如下: <? $newdata = array('$set' => array("title" => "Calvin and Hobbes")); $collection->update(array("author" => "caleng"), $newdata); ?>
八、删除文档
我们使用remove来删除一个文档。代码如下: <? $collection->remove(array('author'=>'caleng'), array("justOne" => true)); ?>
九、总结
上述就是我们用PHP来连接MongoDB,并对 数据进行增删改查的全部操作。最后我们当然也要记得关闭链接。<? $connection->close(); ?>