php对mongodb的扩展(小试牛刀)

 更新时间:2012年11月11日 21:35:08   作者:  
本文主要讲解php连接、操作mongodb,有需求的朋友可以参考下

今天外面刮着呼呼的大风,能在一个温暖的小屋写着博客也是北漂的一种幸福。好了废话不多说,今天主要说一下php连接、操作mongodb,如果你没有看上两期的内容,不知道如何安装php对mongodb的扩展的话请您返回去看《php对mongodb的扩展(初识如故) 》和《php对mongodb的扩展(初出茅庐)》 。

php 连接mongodb

复制代码 代码如下:

try {
  $mongo = new Mongo("mongodb://username:password@127.0.0.1:27017/db1");
}catch(MongoConnectionException $e) {
print $e->getMessage();
exit;
}

选择数据库blog
复制代码 代码如下:

$db = $mongo->blog;

关闭数据库
复制代码 代码如下:

$conn->close();

选择操作集合
$collection = $db->users;
插入数据
复制代码 代码如下:

$user = array('name' => 'caleng', 'city' => 'beijing');
$collection->insert($user);

修改数据
复制代码 代码如下:

$newdata = array('$set' => array("city" => "shanghai"));
$collection->update(array("name" => "caleng"), $newdata);

删除数据
复制代码 代码如下:

$collection->remove(array('name'=>'caleng'), array("justOne" => true));

查找数据
查找一条数据
复制代码 代码如下:

$result= $collection->findone(array("name"=>"caleng"));

查询一个列表
复制代码 代码如下:

//找出创建时间大于某一时间的数据
$start = 1;
$counditionarray=array("ctime"=>array('$gt'=>1337184000));
$list_data = $this->game_handle->find($counditionarray);
$total = $this->game_handle->count($counditionarray);
$list_data->limit($count); //数据结束位置
$list_data->skip($start); //数据开始取的位置
var_dump($list_data);

in查询
复制代码 代码如下:

$cursor = $collection->find(array(
'name' => array('$in' => array('Joe', 'Wendy'))
));

group查询
复制代码 代码如下:

$collection->insert(array("category" => "fruit", "name" => "apple"));
$collection->insert(array("category" => "fruit", "name" => "peach"));
$collection->insert(array("category" => "fruit", "name" => "banana"));
$collection->insert(array("category" => "veggie", "name" => "corn"));
$collection->insert(array("category" => "veggie", "name" => "broccoli"));
$keys = array("category" => 1);
$initial = array("items" => array());
$reduce = "function (obj, prev) { prev.items.push(obj.name); }";
$g = $collection->group($keys, $initial, $reduce);
echo json_encode($g['retval']);

输出结果:
复制代码 代码如下:

[{"category":"fruit","items":["apple","peach","banana"]},{"category":"veggie","items":["corn","broccoli"]}]

可以看出得到的结果是一个二维 数组
复制代码 代码如下:

array(
0 => array("category" =>"fruit", "items"=>array("apple","peach","banana")),
1 => array("category" =>"veggie", "items"=>array("corn","broccoli"))
)

在这里这写了一些简单的操作,如果您想用php更好的作用mongodb 那就看手册吧。

相关文章

  • checkbox设置复选框的只读效果不让用户勾选

    checkbox设置复选框的只读效果不让用户勾选

    有时候是只想告知用户这个地方是可以进行勾选操作的而不想让用户在此处勾选(比如在信息展示页面),这时候就需要将复选框设置成只读的效果,具体实现方法如下
    2013-08-08
  • JS实现字符串转驼峰格式的方法

    JS实现字符串转驼峰格式的方法

    这篇文章主要介绍了JS实现字符串转驼峰格式的方法,结合实例形式分析了传统的字符串遍历转换及正则替换两种操作技巧,需要的朋友可以参考下
    2016-12-12
  • 使用JSX实现Carousel轮播组件的方法(前端组件化)

    使用JSX实现Carousel轮播组件的方法(前端组件化)

    做这个轮播图的组件,我们先从一个最简单的 DOM 操作入手。使用 DOM 操作把整个轮播图的功能先实现出来,然后在一步一步去考虑怎么把它设计成一个组件系统
    2021-04-04
  • 实用的js 焦点图切换效果 结构行为相分离

    实用的js 焦点图切换效果 结构行为相分离

    行为层是由js来实现的,这里的工作只是搭建了一个简单的骨架,如果要让效果图美观些并符合设计要求,就要发挥css的强大作用了。
    2010-06-06
  • Javascript中八种遍历方法的执行速度深度对比

    Javascript中八种遍历方法的执行速度深度对比

    关于数组或对象遍历,相信很多人都没有深入观察过执行效率。这是一个曾在群里吵翻天的话题,读懂后你将成为遍历效率话题的大师。下面这篇文章主要介绍了Javascript中八种遍历方法执行速度深度对比的相关资料,需要的朋友可以参考下。
    2017-04-04
  • layui table 参数设置方法

    layui table 参数设置方法

    今天小编就为大家分享一篇layui table 参数设置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Vue 组件渲染详情

    Vue 组件渲染详情

    这篇文章主要介绍了Vue 组件渲染详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • js获取当前日期前七天的方法

    js获取当前日期前七天的方法

    这篇文章主要介绍了js获取当前日期前七天的方法,涉及javascript中for语句及日期操作的技巧,需要的朋友可以参考下
    2015-02-02
  • 如何用js 实现依赖注入的思想,后端框架思想搬到前端来

    如何用js 实现依赖注入的思想,后端框架思想搬到前端来

    这篇文章主要介绍了js 实现依赖注入的思想,后端框架思想搬到前端来,需要的朋友可以参考下
    2015-08-08
  • Javascript处理循环的异步操作指南

    Javascript处理循环的异步操作指南

    这篇文章主要给大家介绍了关于Javascript处理循环的异步操作的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03

最新评论