PHP 操作mongodb api大部分方法
<?php
/* PHP mongodb
* 全部curd操作
* @author:xiaojiang
* @date: 2014-10-27
*/
//查看 mongo类版本 1.30 以后版本使用 MongoClient
//Mongo::VERSION;
/*连接*/
$m = new Mongo("mongodb://localhost");
//连接多台
//$m = new Mongo("mongodb://localhost:27017,localhost:27018");
//选择数据库
$db = $m->selectDB("banggoCMS");
//$db = $m->banggoCMS;
$col = $db->dbeleComment2014; /*新增*/
/*
$opt = array(
'fsync' => 1 //默认为 false , false时当日志配置开启时和 j 参数的功能类似 否则写操作会等到数据完全同步到硬盘后...true则忽略执行结果
//...
)
*/
//$ret = $col->insert( array('pid'=>2 , 'content'=>'test123') , $opt ); /*更新*/
//$set
//修改属性
//$ret = $col->update( array('pid'=> 2 ), array('$set'=> array('content'=>'123456') ) );
//$unset
//删除某个属性$unset
//$ret = $col->update( array('pid'=> 2 ), array('$unset'=> array('content'=>1 ,'contents'=>1) ) );
//$push
//为某个属性 新增/更新 一条记录 若属性不存在则新增属性
//$ret = $col->update( array('pid'=> 2 ), array('$push'=> array('contents'=> array('v'=>1) ) ) );
//$pushall
//批量增加数据
//$ret = $col->update( array('pid'=> 2 ), array('$pushAll'=> array('contents'=> array(1,2,3,4) ) ) );
//$addToSet
//和push功能类似 与$push不同的是$addToSet会保证元素的唯一性,防止重复添加
//$ret = $col->update( array('pid'=> 2 ), array('$addToSet'=> array('contents'=> 1 ) ) );
//$pop
//删除字段数组中的第一条记录 。mongodb 1.1及以后的版本可以用 2或-2来删除两条,
//$ret = $col->update( array('pid'=> 2 ), array('$pop'=> array('contents'=> -1 ) ) );
//$pull index
//$ret = $col->update( array('pid'=> 2 ), array('$pull'=> array( 'contents' => 2 ) ) );
//$pullAll
//$ret = $col->update( array('pid'=> 2 ), array('$pullAll'=> array( 'contents' => array(1,2,3,4) ) ) );
//$inc $代表子项中的自身
//$ret = $col->update( array('contents'=> 3 ), array('$inc'=> array('contents.$' => 100 ) ) );
//$代表子项中的匹配记录自身
//删除
//$ret = $col->update( array('contents'=> 8 ), array('$unset'=> array('contents.$' => 1 ) ) );
//修改
//$ret = $col->update( array('contents'=> 2 ), array('$set'=> array('contents.$' => 11 ) ) );
//添加 PS:更新的节点要是数组类型
// $ret = $col->update( array('contents.v'=> 34 ), array('$push'=> array('contents.$.test' => array('t1'=>1 ,'t2'=>2) ) )); /*删除*/
//$ret = $col->remove( array('pid'=> 2 ) );
//只删除一条
//$ret = $col->remove( array('pid'=> 2 ) , array("justOne" => true));
/*查询*/
//$ret = $col->find( array('pid'=>2 , 'content'=>'test123') );
//子查询
//$ret = $col->findOne( array('pid'=>2 , 'contents'=> 1 ) );
//$ret = $col->findOne( array('pid'=>2 , 'contents.t'=> 5 ) ); //获取总数
//$t = $ret->count();
//越过多少
//$ret = $col->find( array('pid'=>2) )->skip( 10 );
//排序
//$ret = $col->find( array('pid'=>2) )->sort(array("a" => 1));
//返回字段
//$ret = $col->find( array('pid'=>2), array('content') );
//$ret = $col->find( array('pid'=>2), array('content' => 0 ) ); //忽略字段
//返回对象 php >= 5.1 iterator_to_array
//var_dump( iterator_to_array( $ret ) );
//否则
//foreach( $ret as $v){
// var_dump( $v );
//}
//$ret = $col->findOne(array('pid'=>2 , 'content'=>'test123'));
// 直接返回数组 ?>
PHP 操作mongodb api大部分方法的更多相关文章
- Java操作mongoDB2.6的常见API使用方法
对于mongoDB而言,学习方式和学习关系型数据库差不太多 開始都是学习怎样insert.find.update.remove,然后就是分页.排序.索引,再接着就是主从复制.副本集.分片等等 最后就是 ...
- 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:
使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...
- python操作mongodb根据_id查询数据的实现方法
python操作mongodb根据_id查询数据的实现方法 python操作mongodb根据_id查询数据的实现方法,实例分析了Python根据pymongo不同版本操作ObjectId的技巧, ...
- 在ASP.NET Core2上操作MongoDB就是能这么的简便酷爽(自动完成分库分表)
NoSQL是泛指非关系型的数据库,现今在我们的项目中也多有使用,其独特的优点为我们的项目架构带来了不少亮点,而我们这里的主角(MongoDB)则是NoSQL数据库家族中的一种.事实上,NoSQL数据库 ...
- mongoose - 让node.js高效操作mongodb
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...
- 【荐】PHP操作MongoDB GridFS 存储文件,如图片文件
GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容, ...
- atitit.api设计 方法 指南 手册 v2 q929.docx
atitit.api设计 方法 指南 手册 v2 q929.docx atitit.api设计原则与方法 1. 归一化(锤子钉子理论)1 1.1. 链式方法2 1.2. 规则5:建立返回值类型2 1. ...
- 学习MongoDB--(11):应用举例(利用java操作MongoDB)
原文地址:http://blog.csdn.net/drifterj/article/details/7948090 目录地址:http://blog.csdn.net/DrifterJ/articl ...
- PHP操作MongoDB简明教程(转)
转自:http://blog.sina.com.cn/s/blog_6324c2380100ux2m.html MongoDB是最近比较流行的NoSQL数据库,网络上关于PHP操作MongoDB的资料 ...
随机推荐
- Android复制assets目录下的图片到内存
转自:http://www.chenwg.com/android/android%E5%A4%8D%E5%88%B6assets%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84 ...
- [论文笔记] Methodologies for Data Quality Assessment and Improvement (ACM Comput.Surv, 2009) (1)
Carlo Batini, Cinzia Cappiello, Chiara Francalanci, and Andrea Maurino. 2009. Methodologies for data ...
- 国内的maven镜像
阿里云 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>ht ...
- AX ERP 真正的自动批处理
AX real batch job- AX ERP 真正的批处理 在AX3标准功能中,自动化任务是利用Batch来进行自动化处理任务,标准功能的局限是无法真正做到无人值守.比如服务器重启,必须手动去开 ...
- preg_match_all正则表达式的基本使用
了解正则表达式之前,须要掌握一些常用的正则表达式的基础知识,这些如果能记得最好记得,记不住须要用的时候能查到就行,就多个特殊字符,所以说正则表达式玩的就是特殊,具体大家可以查看更加细致的说明. pre ...
- ubuntu 12.04亮度无法调节和无法保存屏幕亮度解决办法(echo_brightness)
经过多次更改失败重装后终于在官网的answers找到了解决办法:原文链接 http://askubuntu.com/questions/3841/desktop-doesnt-remember-bri ...
- SEO优化之Title 和 Meta 标签
对搜索引擎最友好(Search Engine Friendly)的网页是静态网页,但大部分内容丰富或互动型网站都不可避免采用到相关技术语言来实现内容管理和交互功能.SEO 思想指导下的技术支持,主要是 ...
- 让文档和Demo生成更加简单和强大 - SmartDoc 0.1.1 说明
新特性 smartDoc 0.1.1版正式发布,其中加入了更多方便生成文档的功能,主要特性如下: * 加入@demo配置项,看可以动态抓取html和js的内容作为@example,同时支持扩展@dem ...
- Teambition可用性测试记
引言:最开始知道Teambition是几个月前,当时是想找一个团队协作工具.Teambition是候选之一,它的界面设计给我留下了印象.后来得知其背后年轻的创始团队还是让我有些小惊讶的.这次通过朋友介 ...
- EHCACHE采用分布需要注意的地方
分布式EHCACHE系统,有两种同步方式 方式1 : RMI组播方式 这也是最常用的方式,配置简单,关键一点,各EHCACHE的节点配置都是一样的 原理:这样当缓存改变时,ehcache会向230. ...