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


Posted in PHP onNovember 11, 2012

我们的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无限极分类实现的两种解决方法
Apr 28 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
PHP IE中下载附件问题解决方法
Jan 07 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
PHP IDE phpstorm 常用快捷键
May 18 PHP
PHP array_reduce()函数的应用解析
Oct 28 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
PHP面向对象——访问修饰符介绍
Nov 08 #PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
Nov 07 #PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 #PHP
PHP正确解析UTF-8字符串技巧应用
Nov 07 #PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 #PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 #PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 #PHP
You might like
PHP 生成N个不重复的随机数
2015/01/21 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
解放web程序员的输入验证
2006/10/06 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
浅谈React高阶组件
2018/03/28 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
Python机器学习之决策树算法
2017/12/22 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
python 实现超级玛丽游戏
2020/11/25 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
水毁工程实施方案
2014/04/01 职场文书
商业门面租房协议书
2014/11/25 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
2015年统战工作总结
2015/05/19 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
一条慢SQL语句引发的改造之路
2022/03/16 MySQL
如何使用python包中的sched事件调度器
2022/04/30 Python
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL