Mongo操作教程之PHP扩展
接下来我们从命令行和PHP程序两个方面进行对PHP程序对mongodb的连接、增删改查进行详细的讲解与代码实例。
1、首先进行数据库的连接与建立,比如我们默认连接主机和端口为:mongodb://localhost:27017的mongodb,然后创建数据库rision。
程序如下:
<?php
$m = new MongoClient(); // 连接默认主机和端口为:mongodb://localhost:27017
$db = $m->rision; // 获取名称为 "rision" 的数据库
if($db)
{
echo "创建成功!";
}
?>
注意:此时在命令行输入:show dbs 或许并没有发现我们创建的rision数据库,别急,这是因为数据库中为空是不显示的。
2、接下来创建集合(数据表)liuxiao
程序如下:
<?php
$m = new MongoClient(); // 连接
$db = $m->rision; // 获取名称为 "rision" 的数据库
$collection = $db->createCollection("liuxiao");
echo "集合创建成功";
?>
此时在命令行输入show dbs,显示结果如下:
3、接下来给集合中插入文档(数据记录行)
程序如下:
<?php
$m = new MongoClient(); // 连接到mongodb
$db = $m->rision; // 选择一个数据库
$collection = $db->liuxiao; // 选择集合
$document = array(
"title" => "MongoDB",
"description" => "database",
"likes" => 100,
"url" => "http://blog.youkuaiyun.com/rision666/article/details/56276655",
"by"=> "shenggeweida"
);
$collection->insert($document);
echo "数据插入成功";
?>
我们在命令行可以查看我们成功插入的数据,在命令行输入命令: db.liuxiao.find().pretty(),运行如下:
4、然后我们进行简单的查找文档(数据记录行)功能
程序如下:
<?php
$m = new MongoClient(); // 连接到mongodb
$db = $m->rision; // 选择一个数据库
$collection = $db->liuxiao; // 选择集合
$cursor = $collection->find();
// 迭代显示文档标题
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>
我们还可以进行复杂一点的操作,这里我们举个例子,关于更加复杂的操作我们这里不做讲解。假如我们有个数据库school,然后里面有一个集合student,里面有stu_id、stu_name、age、class_id共5个字段,我们在命令行输入以下命令插入几组数据
db.student.insert({"stu_id":1,"stu_name":"张三","age":6,"class_id":1,});
插入几组数据后可以通过db.student.find()查看数据
然后我们现在需要查询0<=stu_id<=20的数据
程序如下:
<?php
// 链接服务器
$m = new MongoClient();
// 选择一个数据库
$db = $m->school;
// 选择一个集合( Mongo 的“集合”相当于关系型数据库的“表”)
$collection = $db->student;
$fruitQuery = array('stu_id' => array('$gte'=>0,'$lte'=>22)); //设置查询条件
$field=array('_id'=>0);//设置显示字段
$res=$collection->find($fruitQuery,$field);
foreach ($res as $stu) {
var_dump($stu);
}
运行结果如下:
5、接下类我们介绍更新文档(数据记录行)操作,直接上代码
程序如下:
<?php
$m = new MongoClient(); // 连接到mongodb
$db = $m->rision; // 选择一个数据库
$collection = $db->liuxiao; // 选择集合
// 更新文档
$collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB 教程")));
// 显示更新后的文档
$cursor = $collection->find();
// 循环显示文档标题
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>
而后在命令行执行db.liuxiao.find().pretty(),查看以上代码运行后的结果,运行结果如下:
6、删除文档(数据记录行)操作
程序如下:
<?php
$m = new MongoClient(); // 连接到mongodb
$db = $m->rision; // 选择一个数据库
$collection = $db->liuxiao; // 选择集合
// 移除文档
$collection->remove(array("title"=>"MongoDB 教程"), array("justOne" => true));
// 显示可用文档数据
$cursor = $collection->find();
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>
以上只是入门级别的一些简单操作,所有复杂的东西都是建立在一点一滴的基础之上的,相信掌握了这些你再操作mongodb已不是问题了!