php对mongodb的扩展(初出茅庐)

 更新时间:2012年11月11日 21:01:31   作者:  
我们的php mongodb也能做mysql、sqlserver能做的几乎所有功能,本文将详细介绍
我们的php mongodb也能做mysql、sqlserver能做的几乎所有功能,本文将详细介绍

一、操作符
操作符相信大家肯定都知道了,就是等于、大于、小于、不等于、大于等于、小于等于,但是在mongodb里不能直接使用这些操作符。在mongodb里的操作符是这样表示的:
(1) $gt > (大于)   
(2) $lt  < (小于)   
(3) $gte  >= (大于等于)
(4) $lt  <= (小于等于)  
(5) $ne  != (不等于) 
(6) $in  in (包含)      
(7) $nin  not in (不包含)  
(8) $exists  exist (字段是否存在) 
(9) $inc  对一个数字字段field增加value
(10) $set  就是相当于sql的set field = value
(11) $unset  就是删除字段  
(12) $push  把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去
(13) $pushAll  同$push,只是一次可以追加多个值到一个数组字段内
(14) $addToSet  增加一个值到数组内,而且只有当这个值不在数组内才增加。
(15) $pop  删除最后一个值:{ $pop : { field : 1 } }删除第一个值:{ $pop : { field : -1 } }注意,只能删除一个值,也就是说只能用1或-1,而不能用2或-2来删除两条。mongodb 1.1及以后的版本才可以用
(16) $pull  从数组field内删除一个等于value值
(17) $pullAll  同$pull,可以一次删除数组内的多个值
(18) $ 操作符  是他自己的意思,代表按条件找出的数组里面某项他自己。这个比较坳口,就不说了。

二、CURD 增、改、读、删
增加

复制代码 代码如下:

db.collection->insert({'name' => 'caleng', 'email' => 'admin#admin.com'});

是不是灰常简单呀,对就是这么简单,它没有字段的限制,你可以随意起名,并插入数据

修改
复制代码 代码如下:

db.collection.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 只更新了第一条大于1记录
db.collection.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 大于3的记录 全更新了
db.collection.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 大于4的记录 只加进去了第一条
db.collection.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 大于5的记录 全加进去

查询
复制代码 代码如下:

db.collection.find(array('name' => 'bailing'), array('email'=>'email@qq.com'))
db.collection.findOne(array('name' => 'bailing'), array('email''email@qq.com'))

大家可以看到查询我用了两种不同的写法,这是为什么,其实这跟做菜是一样的,放不同的调料,炒出的菜是不同的味道。下面给大家说一下,这两种调料的不同作用。
findOne()只返回一个文档对象,find()返回一个集合列表。
也就是说比如,我们只想查某一条特定数据的详细信息的话,我们就可以用findOne();
如果想查询某一组信息,比如说一个新闻列表的时候,我们就可以作用find();
那么我想大家这时一定会想到我想对这一个列表排序呢,no problem mongodb会为您全心全意服务
复制代码 代码如下:

db.collection.find().sort({age:1}); //按照age正序排列
db.collection.find().sort({age:-1}); //按照age倒序排列
db.collection.count(); //得到数据总数
db.collection.limit(1); //取数据的开始位置
db.collection.skip(10); //取数据的结束位置
//这样我们就实现了一个取10条数据,并排序的操作。

删除
删除有两个操作 remove()和drop()
复制代码 代码如下:

db.collection.remove({"name",'jerry'}) //删除特定数据
db.collection.drop() //删除集合内的所有数据

distinct操作
复制代码 代码如下:

db.user.distinct('name', {'age': {$lt : 20}})

噢!一口气写太多了,大家看太多也不易消化。今天就到这里吧,明天接着写php对mongodb的操作,尽请期待哦!不能再写了,不然的话明天会变熊猫。good night. have a good dream.

相关文章

  • PHP实现多图片上传类实例

    PHP实现多图片上传类实例

    这篇文章主要介绍了PHP实现多图片上传类实例,该类文件注释详细功能实用且具有一定的扩展性,需要的朋友可以参考下
    2014-07-07
  • php随机显示指定文件夹下图片的方法

    php随机显示指定文件夹下图片的方法

    这篇文章主要介绍了php随机显示指定文件夹下图片的方法,涉及array_rand随机数组操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • php字符串分割函数explode的实例代码

    php字符串分割函数explode的实例代码

    在php中分割一个字符串,我们可以使用函数explode(),其原型如下
    2013-02-02
  • CI框架源码阅读,系统常量文件constants.php的配置

    CI框架源码阅读,系统常量文件constants.php的配置

    CI框架源码阅读,系统常量文件constants.php的配置,需要的朋友可以参考一下
    2013-02-02
  • PHP的PDO操作简单示例

    PHP的PDO操作简单示例

    这篇文章主要介绍了PHP的PDO操作,以简单示例形式分析了PHP操作PDO的简单连接,初始化及查询,插入等操作技巧,需要的朋友可以参考下
    2016-03-03
  • PHP操作数组相关函数

    PHP操作数组相关函数

    PHP数组是一个重要的概念,它包含有大量的函数,方便人们的开发…现将它的数组分类,以方便查询及应用.
    2011-02-02
  • 深入理解PHP中的Streams工具

    深入理解PHP中的Streams工具

    这篇文章主要介绍了PHP中的Streams工具,主要用来处理PHP中的包装类,需要的朋友可以参考下
    2015-07-07
  • 关于php 高并发解决的一点思路

    关于php 高并发解决的一点思路

    涉及抢购、秒杀、抽奖、抢票等活动时,为了避免超卖,那么库存数量是有限的,但是如果同时下单人数超过了库存数量,就会导致商品超卖问题。那么我们怎么来解决这个问题呢,我的思路如下
    2017-04-04
  • php为字符串前后添加指定数量字符的方法

    php为字符串前后添加指定数量字符的方法

    这篇文章主要介绍了php为字符串前后添加指定数量字符的方法,涉及php操作字符串的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • php实现的click captcha点击验证码类实例

    php实现的click captcha点击验证码类实例

    这篇文章主要介绍了php实现的click captcha点击验证码类实例,不同于以往传统的验证码,该验证码类可实现手机用户点击某一位置确认验证码,非常实用,需要的朋友可以参考下
    2014-09-09

最新评论