mongodb php
首先安装扩展,然后才能使用mongodb
一、连接数据库
try {
$mongo = new MongoClient();
$db = $mongo->mydb;
var_dump($db);
} catch (MongoConnectionException $e) {
echo $e->getMessage();
}
该代码可以连接mydb数据库,如果该数据库不存在则自动创建。
二、创建集合
try {
$mongo = new MongoClient();
$db = $mongo->mydb;
$mycol = $db->createCollection('mycol');
var_dump($mycol);
} catch (MongoConnectionException $e) {
echo $e->getMessage();
}
该代码可以创建集合mycol。
三、插入文档
mongodb中使用insert()来插入文档。
try {
$mongo = new MongoClient();
$db = $mongo->mydb;
$mycol = $db->mycol; $document = array('name' => 'test1' , 'sex' => 'formale' , 'age' => 20);
$res = $mycol->insert($document);
var_dump($res);
} catch (MongoConnectionException $e) {
echo $e->getMessage();
}
输出:
array (size=4)
'ok' => float 1
'n' => int 0
'err' => null
'errmsg' => null
四、查找文档
mongodb使用find()来查找文档
try {
$mongo = new MongoClient();
$db = $mongo->mydb;
$mycol = $db->mycol; $mongoCursor = $mycol->find();
foreach ($mongoCursor as $document) {
var_dump($document);
}
} catch (MongoConnectionException $e) {
echo $e->getMessage();
}
结果:
array (size=4)
'_id' =>
object(MongoId)[7]
public '$id' => string '56c28a793b22cf5415000029' (length=24)
'name' => string 'test1' (length=5)
'sex' => string 'formale' (length=7)
'age' => int 20
五、更新文档
使用update()来更新文档
try {
$mongo = new MongoClient();
$db = $mongo->mydb;
$mycol = $db->mycol; $mycol->update(array('name'=>'test1') , array('$set'=>array('age' => 21)));
$mongoCursor = $mycol->find();
foreach ($mongoCursor as $document) {
var_dump($document);
}
} catch (MongoConnectionException $e) {
echo $e->getMessage();
}
结果
array (size=4)
'_id' =>
object(MongoId)[7]
public '$id' => string '56c28a793b22cf5415000029' (length=24)
'name' => string 'test1' (length=5)
'sex' => string 'formale' (length=7)
'age' => int 21
六、删除文档
try {
$mongo = new MongoClient();
$db = $mongo->mydb;
$mycol = $db->mycol; $mycol->remove(array('name'=>'test1'));
$mongoCursor = $mycol->find();
foreach ($mongoCursor as $document) {
var_dump($document);
}
} catch (MongoConnectionException $e) {
echo $e->getMessage();
}
remove方法
public bool|array MongoCollection::remove ([ array $criteria = array() [, array $options = array() ]] )
options删除的选项:
“w”:抛出异常的级别,默认是1;
“justOne”:最多只删除一个匹配的记录;
“fsync”:Boolean, defaults to FALSE
. Forces the insert to be synced to disk before returning success. If TRUE
, an acknowledged insert is implied and will override setting w to 0.
“timeout”:Integer, defaults to MongoCursor::$timeout. If "safe" is set, this sets how long (in milliseconds) for the client to wait for a database response. If the database does not respond within the timeout period, aMongoCursorTimeoutException will be thrown.
......
其他方法可参见php手册:http://php.net/manual/zh/book.mongo.php
mongodb php的更多相关文章
- 【翻译】MongoDB指南/聚合——聚合管道
[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 【翻译】MongoDB指南/CRUD操作(三)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
- 【翻译】MongoDB指南/CRUD操作(一)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- MongoDB系列(二):C#应用
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
- MongoDB系列(一):简介及安装
什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...
- [原]分享一下我和MongoDB与Redis那些事
缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...
- 用MongoDB分析合肥餐饮业
看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...
随机推荐
- poj 1737 Connected Graph
// poj 1737 Connected Graph // // 题目大意: // // 带标号的连通分量计数 // // 解题思路: // // 设f(n)为连通图的数量,g(n)为非连通图的数量 ...
- form表单回车提交
当form中只有一个input[type="text"](其他的表单元素可以随意有)的输入框时候,当input[type="text"]获得焦点的时候,无论表单 ...
- PYTHON学习之路_PYTHON基础(10)
学习内容: Python进程与线程 1.线程及线程类 2.线程守护 3.线程等待 4.线程锁 5.信号量 6.timer用法 7.队列 8.事件驱动 9.生产者消费者模型 10.进程及进程同步 11. ...
- 第8章 NAND FLASH控制器
8.1 NAND Flash介绍和NAND Flash控制器使用 NAND Flash在嵌入式系统中的地位与PC上的硬盘类似 NAND Flash在掉电后仍可保存 8.1.1 Flash介绍 有NOR ...
- 【MySQL】事务没有提交导致 锁等待Lock wait timeout exceeded异常
异常:Lock wait timeout exceeded; try restarting transaction 解决办法:(需要数据库最高权限) 执行select * from informati ...
- 对初学者的MPLS 常见问题
对初学者的MPLS 常见问题 2015年6月8日 16:04 阅读 186 问:什么是多协议标签交换 (MPLS)? 答:MPLS是一种数据包转发技术,该技术使用标签来做出数据转发决策. 利用MPLS ...
- SQLSERVER2008新增的审核/审计功能
SQLSERVER2008新增的审核/审计功能 很多时候我们都需要对数据库或者数据库服务器实例进行审核/审计 例如对失败的登录次数进行审计,某个数据库上的DDL语句进行审计,某个数据库表里面的dele ...
- 打造自己的视频会议系统 GGMeeting(附送源码)
自从在博客园发布广域网即时通信系统GG(QQ高仿版)以来,结识了很多做IM的朋友,然后我和我的伙伴们也接到了很多与IM相关的项目.相比在发布GG之前难以接到项目的状况相比,现在简直太幸福了,虽然做项目 ...
- 细说angular Form addControl方法
在本篇博文中,我们将接触angular的验证.angular的验证是由form 指令和ngModel协调完成的.今天博主在这里想要说的是在验证在的一种特殊情况,当验证控件没有没有name属性这是不会被 ...
- [ACM_几何] Wall
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28417#problem/E 题目大意:依次给n个点围成的一个城堡,在周围建围墙,要求围墙 ...