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 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
我的论坛源代码(一)
Oct 09 PHP
新安装的MySQL数据库需要注意的安全知识
Jul 30 PHP
初学PHP的朋友 经常问的一些问题。不断更新
Aug 11 PHP
php正则表达式(regar expression)
Sep 10 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
smarty实现多级分类的方法
Dec 05 PHP
smarty缓存用法分析
Dec 16 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
PHP合并两个或多个数组的方法
Jan 20 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 smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php调用C代码的实现方法
2014/03/11 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
理解Javascript_08_函数对象
2010/10/15 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Node.js中的child_process模块详解
2018/06/08 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
简单说明Python中的装饰器的用法
2015/04/24 Python
Django自定义manage命令实例代码
2018/02/11 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
python模拟斗地主发牌
2020/04/22 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
C语言中break与continue的区别
2012/07/12 面试题
初中校园之声广播稿
2014/01/15 职场文书
教师个人培训总结
2015/02/11 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
Oracle 触发器trigger使用案例
2022/02/24 Oracle
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技