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自定义控件
首先看效果图, 看下这两个界面,第一个中用到了一个自定义的FlowRadioGroup,支持复合子控件,自定义布局: 第二个界面中看到了输入的数字 自动4位分割了吧:也用到了自定义的DivisionE ...
- AX 与Citrix打印机问题
国外文章,抄个链接,备查 http://blogs.msdn.com/b/axsupport/archive/2010/07/06/ax-2009-citrix-amp-terminal-server ...
- SQLite 入门教程 (终端)命令
一.基本简介 SQLite 是一个自持的(self-contained).无服务器的.零配置的.事务型的关系型数据库引擎.因为他很小,所以也可以作为嵌入式数据库内建在你的应用程序中.SQLite 被应 ...
- Android关于Theme.AppCompat相关问题的深入分析(转)
http://www.jianshu.com/p/6ad7864e005e 先来看这样一个错误: No resource found that matches the given name '@sty ...
- Git使用总结
一.Git的特性 Speed 速度(git是用c语言写的.一般都是提交到本地) Simple design Strong support for non-linear development (tho ...
- Go加密解密之RSA[转]
安全总是很重要的,各个语言对于通用的加密算法都会有实现.前段时间,用Go实现了RSA和DES的加密解密,在这分享一下.(对于RSA和DES加密算法本身,请查阅相关资料) 在PHP中,很多功能经常是一个 ...
- Redis配置以及通过C#访问小试
首先安装一个Ubuntu14.04的虚拟机用来安装Redis.Ubuntu的Unity在虚拟机里面卡爆了,可以通过如下方法安装传统的Gnome界面: sudo aptitude install gno ...
- Unity3d 音效模块相关
关于Unity的音效方面,主要关注以下3个类: Audio Clip : audio data,导入到unity中的音频文件都是audio clip. Audio Sources : 挂载这audio ...
- fis3使用环境
1.全局安装nodejs 2.安装http-server npm install http-server -g 3.安装fis3 npm install -g fis3 如要限制版本号写法是:npm ...
- python面向对象编程(上)
面向对象编程(OOP,Object Oriented Programming)是每一个高级编程语言都支持的编程方法,比如JAVA/C++/C#等等.学习面向对象编程是每一个程序员都绕不开的重点内容. ...