php操作mongoDB实例分析


Posted in PHP onDecember 29, 2014

本文实例讲述了php操作mongoDB的方法。分享给大家供大家参考。具体分析如下:

mongoDB数据库是一种以json格式存储的数据库,非常适用于各种应用开发,这里就来给各位朋友介绍一些mongoDB学习实例.

mongodb想要整合PHP,需要安装Mongo扩展,这个比较简单,现在说一下MongoDB PHPAPI  及用法.

先看一个简单的例子,实例代码如下:

<?php

 $m = new Mongo();  //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如 192.168.0.4:27017,如果端口是27017,端口可以省略 

 $db = $m -> comedy;  // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB("comedy");

 $collection = $db->collection;  //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用

 $db->selectCollection("collection");

 $obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );

 $collection->insert($obj); //将$obj 添加到$collection 集合中 

 $obj = array( "title" => "XKCD", "online" => true );

 $collection->insert($obj);

$cursor = $collection->find();

 foreach ($cursor as $obj) {  //遍历所有集合中的文档

 echo $obj["title"] . "n";

 } 

$m->close(); //断开MongoDB连接

下面在介绍一些常用的函数,Php代码如下:
$query = array( "i" => 71 );

 $cursor = $collection->find( $query );// 在$collectio集合中查找满足$query的文档

 while( $cursor->hasNext() ) {

 var_dump( $cursor->getNext() );

 }  

 

 $collection -> findOne();//返回$collection集合中第一个文档  

 $collection -> count();  //返回$collection集合中文档的数量  

 $coll->ensureIndex( array( "i" => 1 ) );  // 为i “这一列”加索引 降序排列 

 $coll->ensureIndex( array( "i" => -1, "j" => 1 ) );  // 为i “这一列”加索引 降序排列 j升序

查询时,每个Object插入时都会自动生成一个独特的_id,它相当于RDBMS中的主键,用于查询时非常方便,Php代码如下:
<?php  

 $person = array("name" => "joe");  

 $people->insert($person);  

  $joe = $people->findOne(array("_id" => $person['_id']));  

?>

更新时:假如我们想修改下面文档中comments中author的名字,Php代码如下:
{ 

     "_id" : ObjectId("4b06c282edb87a281e09dad9"), 

     "content" : "this is a blog post.",

     "comments" : 

     [

         {

             "author" : "Mike",

             "comment" : "I think that blah blah blah...",

         },

         {

             "author" : "John",

             "comment" : "I disagree."

         }

     ]

}

为了改变内部的一个域,我们用 $set,保证文档中其他域不被移除,并且comment的索引也变化,Php代码如下:
<?php 

$collection->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim")))); //$criteria 为要更新的元素  

?>

删除一个数据库,Php代码如下:
$m -> dropDB("comedy");

列出所有可用数据库,Php代码如下:

$m->listDBs(); //无返回值

好了就先写这么多了,有兴趣的话可以在网上搜到其他的关于Mongo-php API的用法.

命令行使用实例:

1. db.system.users.find()
 
2. db.users.count()
 
3. db.users.ensureIndex({password:-1})
 
4. use test
 
5. db.users.getIndexes()
 
6. db.repairDatabase()
 
7. show users
 
8. show dbs
 
9. db.users.find({username:{$in:['4d81a82398790']}}).explain()
 
10. db.users.dropIndexes()
 
11. db.users.find().count()
 
12. db.users.find().limit(5)
 
13. db.users.find({"username":"ssa"}) 
 
14. show collections
 
15. db.users.remove()
 
16. db.user.remove({'username':'admin'})
 
17. db.user.insert({'username':'admin','age':21,'nickname':'admin'})
 
18. db.user.save({'username':'admin','age':21,'info':['12','12313','zzsd']})
 
19. db.createCollection("user") 
 
20. db.dropDatabase()
 
21. show collections
 
22. db.test.drop()
 
23. db.copyDatabase('test','test1')
 
24. show profile
 
25. db.printCollectionStats()
 
26. db.addUser('admin','admin123') 
 
27. db.setProfilingLevel(2);
 
28. db.setProfilingLevel( 1 , 10 );
 
29. db.system.profile.find()

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
PHP 事件机制(2)
Mar 23 PHP
drupal 代码实现URL重写
May 04 PHP
Linux中为php配置伪静态
Dec 17 PHP
php实现Session存储到Redis
Nov 11 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
php连接sftp的作用以及实例代码
Sep 23 PHP
Laravel 类和接口注入相关的代码
Oct 15 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 #PHP
php调用mysql存储过程实例分析
Dec 29 #PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 #PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 #PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 #PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 #PHP
php读取远程gzip压缩网页的方法
Dec 29 #PHP
You might like
介绍一些PHP判断变量的函数
2012/04/24 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
Django自定义manage命令实例代码
2018/02/11 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
Yahoo的PHP面试题
2014/05/26 面试题
新闻编辑自荐书范文
2014/02/12 职场文书
投标担保书范文
2014/04/02 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
浅谈JavaScript作用域
2021/12/06 Javascript
关于的python五子棋的算法
2022/05/02 Python