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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
ADODB结合SMARTY使用~超级强
Nov 25 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
php牛逼的面试题分享
Jan 18 PHP
php简单smarty入门程序实例
Jun 11 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
利用python实现数据分析
2017/01/11 Python
python中关于for循环的碎碎念
2017/06/30 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
Python中创建二维数组
2018/10/17 Python
python 用struct模块解决黏包问题
2020/11/07 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
销售自我评价
2013/10/22 职场文书
质量管理标语
2014/06/12 职场文书
群教班子对照检查材料
2014/08/26 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
市场部岗位职责
2015/02/12 职场文书
考研经验交流会策划书
2015/11/02 职场文书
详解Flask开发技巧之异常处理
2021/06/15 Python
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS