PHP mongodb运用,MongoDB在PHP下的应用学习笔记
1、连接
mongodb默认端口是:27017,因此我们连接mongodb:$mongodb = new Mongo('localhost') 或者指定IP与端口 $mongodb = new Mongo('192.168.127.1:27017') 端口可改变
若mongodb开启认证,即--auth,则连接为: $mongodb = new Mongo('root:w888168@localhost:27017');
2、选择数据库
$db = $mongodb->selectDBs('dbname'); 或者直接指定数据库名(因为mongodb可以直接创建不存在的数据库) : $db = $mongodb->dbname;
3、选择集合(collection)
$tables = $db->selectColletion('tablename')或者 $tables = $db->tablename;
接下来就可以操作集合了
4、插入新文档(document)
collection插入数据,如一个人的信息
$one = array(
'name' => 'lily';
'age' => 0,
'hobby' => array(
'dance',
'swim',
'music'
),
);
$res = $tables -> insert($one,true);
第二个参数用于等待MongoDB完成操作,以便确定是否成功,默认值为false,当有大量记录插入时使用该参数会比较有用。插入新文档后,MongoDB会返回一个记录标识。
结果为:1,则说明已经插入了
5、删除文档
删除文档比较简单: $res = $tables->remove(array('name'=>'lily'));
注意:这里是将满足条件的都删除,如果只有删除第一个满足条件的文档,则添加第二个参数为true即可
6、查找文档
定义一个过滤器:$filter = array('name'=>'lily');
$res = $tables -> find($filter);
查找一个 : $res = $tables -> findOne($filter);
此外,还可以在过滤器里添加比较
例,获取sessions大于10的信息:
$filter = array('sessions' => array('$gt' => 10)); (gt -- > lt--< gte -- >= lte <=)
$cursor = $collection->find($filter);
返回的接口为游标
有一个重要的细节需要注意,只有当需要结果的时候查询才会被执行,在第1个例子中,当foreach循环开始时,查询才被执行。
这是个很有用的特性,因为这可以通过在游标(cursor)中增加选项来取回结果,恰好在定义查询后,执行查询前这个时刻。例如,可以设置选项来执行分页,或者获取指定数目的匹配的文档。
$total = $cursor->total();
$cursor->limit(20)->skip(40);
foreach($cursor as $user) {
}
PHP mongodb运用,MongoDB在PHP下的应用学习笔记相关推荐
- ESL3.2(下)最小二乘法学习笔记(含施密特正交化,QR分解)
3.2(下) 最小二乘法 这是一篇有关<统计学习基础>,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成中 ...
- ekf pose使用方法 ros_ubuntu16.04下ROS操作系统学习笔记(二)
做SLAM的硬件要求(不一定是必须的,看包和库的依赖): (1):差分轮式机器人,可以使用Twist速度指令控制,需要线速度和角速度. (2):需要激光雷达.深度摄像头等测距设备,可以获取环境深度信息 ...
- opt文件夹下没有ros_ubuntu16.04下ROS操作系统学习笔记(二)
做SLAM的硬件要求(不一定是必须的,看包和库的依赖): (1):差分轮式机器人,可以使用Twist速度指令控制,需要线速度和角速度. (2):需要激光雷达.深度摄像头等测距设备,可以获取环境深度信息 ...
- 关于JS在IE和FF下attachEvent,addEventListener学习笔记
今天小弄了一下JS事件,主要说一下FF和IE兼容的问题 对象名.addEventListener("事件名(不带ON)",函数名,true/false);(FF下) 对象名.att ...
- 上采样和下采样_OpenCV学习笔记(一)之图像金字塔-上采样与降采样与DOG
一. 图像金字塔 一个图像金字塔式一系列的图像组成,最底下的图形尺寸最大,最上方的图像尺寸最小. 高斯金字塔是从底向上,逐层降采样得到的. 高斯金字塔的生成过程分为两步: 对当前层进行高斯模糊. 删除 ...
- 目标检测——下采样的学习笔记
1 前言 对于目标检测问题来说,"增大感受野"是一个绕不开的话题,对于增大感受野,一种最直观的方式就是下采样: 2 下采样的作用 下采样:增大感受野~
- bash linux .ee,Linux下Bash shell学习笔记.md
### 1.shell下没有变量类型和定义的概念. >1. 变量直接使用不用定义 >2. 所有值都视为字符串. >3. 在对变量取值都需要加$ >4. 行注释为 # + ### ...
- Scala下Play框架学习笔记(Actions,Controllers and Results)
Scala下Play框架的学习是一件辛苦的事情,因为该框架比较新,scala语言也较新,所以中文资料很少,经过同事推荐,去了如下英文网站看资料: https://www.playframework.c ...
- python 下的 word2vec 学习笔记
1.ubuntu下安装gensim refer to: ubuntu 14.04 安装gensim 为了保证安装成功,首先升级一下easy_install工具. sudo easy_install - ...
最新文章
- 预测过去?DeepMind用AI复原古希腊铭文,登Nature封面
- 延迟环境变量扩展(bat)
- 国外计算机音乐专业,音乐留学干货 | 国外电子音乐专业留学如何?
- 动态规划(一)简单例子
- SQL Server-聚焦UNIOL ALL/UNION查询(二十三)
- mysql 树表删除无效节点
- Swift-属性监听
- php微信支付使用ajax,接入微信公众号支付,选择支付方式后,只弹出“error’”(php)...
- haproxy负载均衡_Haproxy+keepalived高可用集群实战
- c语言实现点在多边形内部,求教这个判断点是否在多边形内的C语言算法用的什么原理....
- uni-app发布为H5页面白屏问题
- [MFC] 向文本编辑框写入数据与从其中读取数据
- Intel笔记本处理器发展简史(二)
- 计算机专业毕业设计—351个VB管理系统源码打包(计算机专业整理)
- 如何解决设备管理中的难点?
- 满足AUTOSAR基础软件要求的硬件安全模块(HSM)加密运算
- myeclipse 10破解方法
- mysql.servers表存在_ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist
- Django源码cookie解读:关于中文cookie会被吞掉并截断的问题。
- 分支语句和循环语句<小罗爱学c语言>