Mongo操作教程之PHP扩展

本文详细介绍了使用PHP扩展操作MongoDB的方法,包括数据库连接、集合创建、文档的增删改查等基本操作,并通过具体代码示例进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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已不是问题了!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值