<?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大部分方法的更多相关文章

  1. Java操作mongoDB2.6的常见API使用方法

    对于mongoDB而言,学习方式和学习关系型数据库差不太多 開始都是学习怎样insert.find.update.remove,然后就是分页.排序.索引,再接着就是主从复制.副本集.分片等等 最后就是 ...

  2. 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:

     使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...

  3. python操作mongodb根据_id查询数据的实现方法

    python操作mongodb根据_id查询数据的实现方法   python操作mongodb根据_id查询数据的实现方法,实例分析了Python根据pymongo不同版本操作ObjectId的技巧, ...

  4. 在ASP.NET Core2上操作MongoDB就是能这么的简便酷爽(自动完成分库分表)

    NoSQL是泛指非关系型的数据库,现今在我们的项目中也多有使用,其独特的优点为我们的项目架构带来了不少亮点,而我们这里的主角(MongoDB)则是NoSQL数据库家族中的一种.事实上,NoSQL数据库 ...

  5. mongoose - 让node.js高效操作mongodb

    Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...

  6. 【荐】PHP操作MongoDB GridFS 存储文件,如图片文件

    GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容, ...

  7. atitit.api设计 方法 指南 手册 v2 q929.docx

    atitit.api设计 方法 指南 手册 v2 q929.docx atitit.api设计原则与方法 1. 归一化(锤子钉子理论)1 1.1. 链式方法2 1.2. 规则5:建立返回值类型2 1. ...

  8. 学习MongoDB--(11):应用举例(利用java操作MongoDB)

    原文地址:http://blog.csdn.net/drifterj/article/details/7948090 目录地址:http://blog.csdn.net/DrifterJ/articl ...

  9. PHP操作MongoDB简明教程(转)

    转自:http://blog.sina.com.cn/s/blog_6324c2380100ux2m.html MongoDB是最近比较流行的NoSQL数据库,网络上关于PHP操作MongoDB的资料 ...

随机推荐

  1. KPI绩效考核为何在国内不管用?

    很多外国很好的管理制度,到了中国都有水土不服,就像KPI绩效考核一样,到了中国执行得很不好,甚至还不如用本土的人治管理方法,那是为何呢?为什么国内学平衡计分法和KPI的热情非常高,效果却往往有限? 其 ...

  2. JAVA 汇编语言查看

    http://blog.csdn.net/bingduanlbd/article/details/8524300 http://hllvm.group.iteye.com/group/topic/34 ...

  3. Android Studio 简单功能介绍

    Android Studio  建立系统工具包你用来生成,测试,运行您的应用程序和软件包.构建系统是独立于Android的工作室,所以你可以调用它的Android的工作室或从命令行.在你写你的应用程序 ...

  4. Linux Ubuntu搭建git服务器

    1. 安装 openssh-server ,用于创建SSH服务. sudo apt-get install openssl-server 使用命令ps -e|grep ssh,查看ssh服务是否启动. ...

  5. ArchLinux 下架设PPTPD VPN服务

    直接上命令吧: 安装: pacman -Sy pacman -S pptpd 配置: vim /etc/pptpd.conf option /etc/ppp/options.pptpd stimeou ...

  6. [转]SharePoint开发中可能用到的各种Context(上下文)

    SharePoint是一个B/S结构的产品,所以在开发过程中会使用到各种各样的上下文(Context)信息,借此机会来总结一下.特别是Javascript的Ctx非常实用,这里记录一下! 一.Http ...

  7. char str[]和char *str的区别

    1.http://blog.csdn.net/szchtx/article/details/10396149 char ss[]="C++";  ss[0]='c';        ...

  8. MyBatis知多少(2)

    MyBatis从目前最流行的关系数据库访问方法中吸收了大量的优秀特征和思想,并找出其中的协同增效作用.下图展示了MyBatis框架是如何吸收我们在多年使用不同方式进行数据库集成的 开发过程中所学到的知 ...

  9. Pop - Facebook 开源 iOS & OS X 动画库

    Pop 是一个可扩展的 iOS & OS X 动画引擎.除了基本的静态动画,它支持弹簧和动态衰减的动画,因此可以用于构建现实的,基于物理的交互效果. 它的 API 可以与现有的 Objecti ...

  10. Flask模板_学习笔记

    代码尽在我的github上面:https://github.com/521xueweihan 概述:    在Flask中,Jinja2默认配置如下:        A.扩展名为.html,.htm, ...