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,是因为 ...
随机推荐
- IOS和Android支持的音频编解码
1.IOS编码 参考文档地址:https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/Multimedi ...
- 关于MFC文本框输入内容的获取 与 设置文本框的内容
八月要开始做界面了<( ̄︶ ̄)/,然而目前只会用MFC╮(╯▽╰)╭ 好吧,言归正传,设置好文本框后,要获取用户输入的内容,可以用: GetDlgItemText() ; 这个函数有两个参数,第 ...
- C++回调函数的应用<转自:http://blog.csdn.net/wubin1124/article/details/4386269>
一回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理.用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函 ...
- Android中NDK的搭建及简单使用 Android.mk相关介绍 JNI的使用
Android中NDK的搭建及简单使用: 使用NDK,简述其重要步骤:.搭建NDK环境(作用:用于自动生成jni下的.c对应的so文件)---到Android NDK官网或Android官网下载ndk ...
- js 将long型字符串转换成日期格式
工作中难免会碰到日期的转换,往往为了方便,后台都是把时间以long型(形如1343818800000)返回给web前端.再有前端自己根据页面需求转换成相应的日期格式.这里将我常用的一个转换时间的函数贴 ...
- Arc Engine下数据的加载处理
1.加载Shapefile数据 IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureLa ...
- distinct order by 排序问题
使用类似“SELECT DISTINCT `col` FROM `tb_name` ORDER BY `time` DESC”这样的sql语句时,会遇到排序问题. 以上面的sql语句分析:order ...
- activity启动模式区别和优化
初学android的开发人员,可能会经常忽略这个重要的设置. Activity一共有以下四种launchMode:1.standard2.singleTop3.singleTask4.singleIn ...
- 【转】一个lucene的官网例子
创建索引: import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import jav ...
- 控件UI性能调优 -- SizeChanged不是万能的
简介 我们在之前的“UWP控件开发——用NuGet包装自己的控件“一文中曾提到XAML的布局系统 和平时使用上的一些问题(重写Measure/Arrange还是使用SizeChanged?),这篇博文 ...