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的资料 ...
随机推荐
- 老鼠跑猫叫主人惊醒c++观察者模式实现
这个题目算是比较经典的观察者模式了,老鼠作为一个Subject,主动发出跑的动作,紧跟着猫由于老鼠的跑而发出叫声,主人也被惊醒,在这里猫跟主人都是被动的,是观察者角色,代码实现如下: class CS ...
- 安卓Android面试题大全
56个问题都是经常用到的,可以深入研究下,也是必须掌握的开发必备知识. 安卓Android面试题汇总 搜集了一些Android面试题目,供将要面试或者正在面试的朋友参考. 1, 谈谈你对Activit ...
- WebDriver基本API使用(基于Java)V1.0
WebDriver基本API使用(基于Java)V1.0http://www.docin.com/p-803032877.html
- POJ 2096 Collecting Bugs
Collecting Bugs Time Limit: 10000MS Memory Limit: 64000K Total Submissions: 1716 Accepted: 783 C ...
- 重构第1天:封装集合(Encapsulate Collection)
理解:封装集合就是把集合进行封装,只提供调用者所需要的功能行借口,保证集合的安全性. 详解:在大多的时候,我们没有必要把所有的操作暴露给调用者,只需要把调用者需要的相关操作暴露给他,这种情况中下我们就 ...
- 【软件分析与挖掘】A Comparative Study of Supervised Learning Algorithms for Re-opened Bug Prediction
摘要: 本文主要是评估多种监督机器学习算法的有效性,这些算法用于判断一个错误报告是否是reopened的,算法如下: 7种监督学习算法:kNN,SVM, SimpleLogistic,Bayesian ...
- 封装系统自带的Debug
Unity3d的Debug.Log函数用于打印日志,一般项目中都会对其作如下两件事情: (1)希望有一个总的开关来控制整个游戏中日志的打印与否: (2)有的系统会将Log封一层并添加统一的标记,比如S ...
- wamp2.5虚拟站点建立
1. D:\wamp\bin\apache\Apache2.2.21\conf 目录下打开httpd.conf修改以下几个地方.(软件安装在D盘) (1)178行DocumentRoot " ...
- WatiN框架学习
WatiN 是一个源于 Watir的工具,开源且用于web测试自动化的类库.Web Application Testing in .NET. WatiN 通过与浏览器的交互来实现自动化,使用起来具有轻 ...
- Spring基础—— Bean 的作用域
一.在 Spring Config 文件中,在 <bean> 元素的 scope 属性里设置 Bean 的作用域.默认为 singleton ,单例的. 二.在不引入 spring-web ...